运行 npm 脚本中的 2 个命令(nodemon && sass --watch)
Running 2 commands in npm script(nodemon && sass --watch)
我有一个 package.json 文件看起来像这样。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node src/app.js",
"dev": "nodemon src/app.js -e js,hbs ",
"scss": "sass --watch public/scss:public/css",
"both": "nodemon src/app.js -e js,hbs && sass --watch public/scss:public/css",
"both2" : "npm run dev && npm run scss"
},
我想知道为什么我不能 运行 这 2 个命令:
"both": "nodemon src/app.js -e js,hbs && sass --watch public/scss:public/css"
来自
npm run both
当我尝试 运行 它时,只有第一个命令有效。
Github 存储库在下面,以防万一你需要一些测试。
使用名为 concurrently.
的包
npm install concurrently
然后你可以制作一个名为both
的脚本
"both": "concurrently \"nodemon src/app.js -e js,hbs\" \"sass --watch public/scss:public/css\""
见
在 UNIX-like 系统上,您可以只使用 &
而不是 &&
来链接你的命令。 &
用于并行脚本执行 而&&
导致顺序执行,这意味着第二个仅在第一个已成功完成。
cmd1 & cmd2 & ... # parallel
cmd1 && cmd2 && ... # sequential
而在 Windows-Systems 上,在每个命令前加上 start
并用 &&
链接它们似乎可以解决问题...
start cmd1 && start cmd2 && start ...
cross-platform 解,参见 f。一世。 concurrently, like Namko suggests, or npm-run-all。这些也解决了其他问题,这些问题在使用上述 platform-specific 解决方案时可能会或可能不会发生(例如 weired/mixed terminal-outputs、多个 terminals/windows、对 process/thread-termination等)...
我有一个 package.json 文件看起来像这样。
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node src/app.js",
"dev": "nodemon src/app.js -e js,hbs ",
"scss": "sass --watch public/scss:public/css",
"both": "nodemon src/app.js -e js,hbs && sass --watch public/scss:public/css",
"both2" : "npm run dev && npm run scss"
},
我想知道为什么我不能 运行 这 2 个命令:
"both": "nodemon src/app.js -e js,hbs && sass --watch public/scss:public/css"
来自
npm run both
当我尝试 运行 它时,只有第一个命令有效。
Github 存储库在下面,以防万一你需要一些测试。
使用名为 concurrently.
的包npm install concurrently
然后你可以制作一个名为both
"both": "concurrently \"nodemon src/app.js -e js,hbs\" \"sass --watch public/scss:public/css\""
见
在 UNIX-like 系统上,您可以只使用 &
而不是 &&
来链接你的命令。 &
用于并行脚本执行 而&&
导致顺序执行,这意味着第二个仅在第一个已成功完成。
cmd1 & cmd2 & ... # parallel
cmd1 && cmd2 && ... # sequential
而在 Windows-Systems 上,在每个命令前加上 start
并用 &&
链接它们似乎可以解决问题...
start cmd1 && start cmd2 && start ...
cross-platform 解,参见 f。一世。 concurrently, like Namko suggests, or npm-run-all。这些也解决了其他问题,这些问题在使用上述 platform-specific 解决方案时可能会或可能不会发生(例如 weired/mixed terminal-outputs、多个 terminals/windows、对 process/thread-termination等)...