如何在Windows系统中用单行Shell命令同时运行Nx与nodemon脚本?
解决Windows下npm脚本无法并行运行多个命令的问题
问题核心是Windows默认CMD不支持类Unix Shell的&后台运行语法:macOS用的bash/zsh会把&前的进程放到后台,两个命令能同时执行;但CMD里&仅作为命令分隔符,必须等第一个进程结束才会启动第二个。
以下是几种可行解决方案:
方案1:用Windows原生start命令(无需额外依赖)
给第一个命令添加start /B参数,让它在当前窗口后台运行,实现并行执行:
"scripts": { ... "translate": "start /B nx run my-project:serve --port=1202 & nodemon apps/my-project/src/assets/i18n/translate/index.js" }
start:Windows CMD原生命令,用于启动新进程/B:避免打开新命令窗口,让进程在当前窗口后台运行
如果需要单独开窗口运行第一个命令,去掉/B即可:
"translate": "start nx run my-project:serve --port=1202 & nodemon apps/my-project/src/assets/i18n/translate/index.js"
方案2:用concurrently包(跨平台推荐)
如果需要脚本在Windows、macOS、Linux全平台兼容,推荐使用concurrently这个npm包,它专门用于并行运行多个命令:
- 安装开发依赖:
npm install concurrently --save-dev
- 修改package.json脚本:
"scripts": { ... "translate": "concurrently \"nx run my-project:serve --port=1202\" \"nodemon apps/my-project/src/assets/i18n/translate/index.js\"" }
该方法无需区分操作系统,是跨平台场景下的最优解。
内容的提问来源于stack exchange,提问作者Odilbek Utamuratov
相关产品推荐
相关产品推荐

