如何在 Windows 上使用单个 NPM 命令运行多个 NPM 命令
Posted
技术标签:
【中文标题】如何在 Windows 上使用单个 NPM 命令运行多个 NPM 命令【英文标题】:How can I run multiple NPM commands with a single NPM Command on Windows 【发布时间】:2019-10-04 01:55:13 【问题描述】:我正在设置一个 package.json 文件,它将启动 Nodemon,运行我的 watch css 命令并使用“npm start”命令运行浏览器同步。
这适用于我工作的 Mac 电脑,但不适用于我家的 Windows 电脑。
在我的 Mac 上,它会监听服务器和 SCSS 文件的任何更改并运行浏览器同步。
在 Windows 上它只运行 Nodemon 并等待任何服务器更改。看起来它忽略了我的其他两个命令。
我需要为 Windows 做一些不同的事情吗?理想情况下,我希望代码能够在两个平台上通用。
Nodemon 似乎是这里的问题,因为 watch-css css 和 browsersync 可以工作,但是 nodemon 之后的任何东西都不起作用。
"scripts":
"build-css": "node-sass --output-style compressed --source-map true -o public/css scss",
"watch-css": "nodemon -e scss -x \"npm run build-css\"",
"build-js": "browserify js/app.js -o public/js/app.js",
"browser-sync": "browser-sync start --port 4000 --proxy 'localhost:3000' --files 'views/*' 'public/**/*' --no-notify",
"start": "nodemon ./bin/www & npm run watch-css & npm run browser-sync"
,
【问题讨论】:
How can I run multiple npm scripts in parallel?的可能重复 根据this comment,当您从字符串运行命令时需要&&
(而不是实时键入它们)。您可以使用start npm xy
在新的终端窗口中运行npm xy
。
这适用于 Mac。 && 不起作用。
【参考方案1】:
这是我使用的:npm-run-all(这是跨平台的)。它们允许您并行和顺序运行您的进程/命令(-p
或 -s
)。
"scripts":
"build-css": "node-sass-chokidar src/ -o src/ --importer=node_modules/node-sass-tilde-importer",
"watch-css": "npm run build-css && node-sass-chokidar src/ -o src/ --watch --recursive",
"start-js": "react-scripts start",
"start": "npm-run-all -p watch-css start-js",
// ... and much more
这对我来说在 windows 和 mac 上都可以正常工作。试试看,希望对你有帮助。
【讨论】:
我回家后试试这个。如果可行,这正是我所需要的,谢谢。 想知道这个包的作者是如何设法让这个跨平台工作的。以上是关于如何在 Windows 上使用单个 NPM 命令运行多个 NPM 命令的主要内容,如果未能解决你的问题,请参考以下文章
子模块不是git命令(在GIT for Windows上使用NPM)
在 Windows 上运行 npm 命令时出错:graceful-fs
当我在 Windows 终端 http-server 上键入命令时