能否跨目录运行react-scripts start?多服务统一启动咨询
环境信息
- Yarn版本:
1.22.19 myapp目录下package.json的核心内容:
"main": "server/index.js", ... "dependencies": { "concurrently": "^6.2.2", ... "nodemon": "^2.0.13", "nodemailer": "^6.6.5", ... "react": "^17.0.2", ... "react-scripts": "^5.0.0", ... }
- 项目文件结构:
myapp | -- client | | -- build | | -- public | | -- src | | -- mailer | | -- index.js | | -- node_modules | | -- server | | -- index.js | | -- package.json | -- yarn.lock
问题解答
问题1:是否可以从仅含public文件夹、无package.json的目录运行react-scripts start?
不行。react-scripts start依赖项目配置和依赖包,它需要读取当前/上级目录的package.json确认项目结构、依赖路径,同时要访问node_modules里的相关依赖组件。仅存public文件夹的目录没有这些必要的配置关联和依赖支撑,根本无法正常启动React开发服务。
问题2:终端在myapp目录时,能否用Yarn结合react-scripts同时启动client、mailer、server三个服务?
可以实现,但不是直接用react-scripts同时启动三个服务,而是借助已安装的concurrently并行执行多个启动命令:
- 先在
myapp的package.json的scripts字段里添加对应启动命令:
"scripts": { "start-client": "cd client && react-scripts start", "start-server": "nodemon server/index.js", "start-mailer": "node mailer/index.js", "start-all": "concurrently \"yarn start-client\" \"yarn start-server\" \"yarn start-mailer\"" }
- 在
myapp目录下执行以下命令:
yarn start-all
这样就能同时启动三个服务:react-scripts负责启动client的React开发服务,nodemon实现server服务的热重载,node直接启动mailer服务,concurrently则负责并行运行这三条命令。
内容的提问来源于stack exchange,提问作者Juno Sprite
相关产品推荐
相关产品推荐

