reactjs 如何使用不同的根目录运行“react-scripts start”?

6uxekuva  于 2023-05-17  发布在  React
关注(0)|答案(4)|浏览(164)

出于特殊原因,我想在两个文件夹web(react应用程序)和mobile之间共享package.json文件:

▸ mobile/
▸ node_modules/
▾ web/
  ▸ public/
  ▸ src/
    README.md
  package-lock.json
  package.json
  yarn.lock

在我的package.json文件中,我添加了以下内容:脚本下的"web-start": "react-scripts start",。然而,当我在根文件夹(/Users/edmund/Documents/src/banana-client)中运行它时,我得到了以下结果:

➜  banana-client git:(master) ✗ yarn web-start
yarn web-start v0.24.6
$ react-scripts start web
Could not find a required file.
  Name: index.html
  Searched in: /Users/edmund/Documents/src/banana-client/public
error Command failed with exit code 1.

有什么方法可以添加根目录吗?

ars1skjm

ars1skjm1#

对于这个特定的用例,我建议您继续使用Yarn工作空间。
使用Yarn工作区,您可以在单个存储库中拥有多个项目,其中项目共享根级别的主package.json文件,项目级别的package.json文件不单独共享和使用。
运行yarn install将在根级别安装所有依赖项,如果您不希望某些软件包安装在根级别,则可以配置该级别。
您可以在根目录中拥有脚本,这些脚本可以帮助您在该工作区中运行内部项目。
因此,您的最终项目结构将看起来像这样:

- project_root
  - web
    - node_modules
    - package.json
  - mobile
    - node_modules
    - package.json

  - node_modules
  - package.json

了解有关Yarn工作区的更多信息:https://yarnpkg.com/lang/en/docs/workspaces/
看看这个例子,了解它的基本用法:https://github.com/pedronauck/yarn-workspaces-example

mum43rcc

mum43rcc2#

我同意Yarn工作区可以帮助你完成你所追求的。否则,您将不得不弹出,因为appIndexJs的配置(设置为/src/index.js)是在react-scripts包的config/paths.js中设置的。弹出后,可以修改config/paths.js变量appIndexJs以适应不同的appIndex。

v2g6jxz6

v2g6jxz63#

添加此解决方案为我解决了同样的问题:

"web-start": "cd web && react-scripts start"
jv2fixgn

jv2fixgn4#

基于上述答案,请执行以下操作:

"web-start": "cd web && npm start"

相关问题