如何通过同一启动脚本同时运行Angular应用与JSON-Server?
如何在Windows环境下同时启动Angular应用与JSON-Server
我需要在运行ng serve或npm run start时,同时启动Angular应用与JSON-Server,而非分别启动,运行环境为Windows。
尝试过的无效方案
我曾将package.json中的start脚本修改为如下内容,但仅启动了JSON-Server,未启动Angular应用:
"start": "json-server --watch db.json && ng-serve",
可行解决方案
最终通过安装npm-run-all解决了问题,具体操作如下:
- 安装
npm-run-all开发依赖:
npm install npm-run-all --save-dev
- 在
package.json的scripts字段中添加以下条目:
"json-server": "json-server --watch db.json", "serve": "ng serve", "start": "run-p json-server serve"
之后运行npm run start,就能同时启动JSON-Server和Angular应用了。
关于&&无效的原因
&&在Windows CMD环境中是串行执行逻辑:只有前序命令执行完成并退出后,才会触发后续命令。而JSON-Server启动后会持续运行(不会主动退出),导致后面的ng serve永远无法执行。如果想用Windows原生方式并行执行,可替换为&(后台执行),但容易出现输出混乱、终端管理不便的问题,因此npm-run-all的run-p(parallel,并行运行脚本)是更稳定的跨平台方案。
内容的提问来源于stack exchange,提问作者Jason
相关产品推荐
相关产品推荐

