如何在 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 命令的主要内容,如果未能解决你的问题,请参考以下文章

Windows下使用 npm 命令安装 Appium(详)

子模块不是git命令(在GIT for Windows上使用NPM)

在 Windows 上运行 npm 命令时出错:graceful-fs

当我在 Windows 终端 http-server 上键入命令时

如何在 Windows 上将 NPM 升级到特定版本 6.4.1?

nodejs项目可以在在windows上和mac上切换吗