【问题标题】:Run NPM scripts synchronously同步运行 NPM 脚本
【发布时间】:2016-04-19 17:10:09
【问题描述】:

要开始我的项目,我有 4 个终端命令需要依次执行,并在不同的终端窗口中依次执行:

npm install
gulp
php -S localhost:8001
browser-sync start --proxy "localhost:8001" --files "**/*"

为了加快速度,我想把论文放在package.json 中,然后用一个命令执行它们,如下所示:

scripts: {
  "start": "npm install && gulp && php -S localhost:8001 && browser-sync start --proxy 'localhost:8001' --files '**/*'"
}

但这不会在同一个 shell 中异步运行它们吗?

【问题讨论】:

  • && 表示命令将连续运行,如果前一个命令完成且没有错误,则执行下一个命令。
  • @AlexanderMac 感谢您的确认。 php、gulp 和 browser-sync 命令都继续运行,因此需要它们自己的 shell 窗口。有没有办法确保上述命令发生这种情况?
  • 如果其中一个命令继续运行,则不会启动下一个命令(因为当前永远不会完成)。在这种情况下,您需要在自己的 shell 窗口中运行它们,当然它们不会按顺序执行。
  • 是的,这就是问题所在。我不知道如何在我的 package.json 脚本中构造命令,以便命令在它们自己的 shell 窗口中运行...

标签: node.js command-line npm


【解决方案1】:

你必须尝试exec-sync,并一一提供脚本命令。

var execSync = require('exec-sync');
 
execSync('npm install');
execSync('gulp');
execSync('php -S localhost:8001');

【讨论】:

  • 但这需要先运行npm install,这是我正在尝试执行的脚本之一......
猜你喜欢
  • 2022-07-21
  • 1970-01-01
  • 1970-01-01
  • 2018-06-06
  • 1970-01-01
  • 2017-01-03
  • 1970-01-01
  • 2016-04-28
  • 2016-08-28
相关资源
最近更新 更多