使用npm install命令创建一个.bat文件

128

我创建了以下文件

npminstall.bat:

npm install
echo hello

当我在Windows 10命令行(dos)中运行以下命令npminstall.bat时,npm install命令会执行,但echo hello不会执行。我尝试在第一行后放置分号,像这样npm install;,但是这只会给我npm的帮助指南。

如何使第二行echo hellonpm install之后执行?

附加说明

我发现这也会导致相同的行为:

npminstall.bat:

webpack
echo hello

我认为这是因为npm install命令和webpack命令都需要执行时间,在此期间,它会对第二行进行我意料之外的操作。

后续2

npminstall.bat:

START /WAIT npm install
echo hello

这似乎几乎能够实现我想做的事情。但是,npm install命令会引起弹出窗口,我必须关闭弹出窗口才能继续执行echo hello world。我能否消除弹出窗口?

1个回答

272

在批处理文件中调用另一个批处理文件时,需要使用CALL命令将控制权返回给父进程,否则控制权将传递到正在执行的批处理文件。

call npm install

3
你真是个救命恩人!我试图在Jenkins上构建Angular,但是脚本一直无法在npm install之后继续执行,直到我添加了'call'命令! - Ralph Ritoch
这样可以让脚本运行,但批处理文件将不再检测错误。因此,如果例如 npm build 中出现问题,批处理文件将继续执行。有什么解决办法吗? - muffin
5
我注意到调用 npm 也会将 echo 关闭。为了解决这个问题,我必须在 call npm install 后面添加 @echo on - Wyck
1
所以显然npm是一个批处理文件,它使用npm-cli.js调用node.exe。有什么理由不在我们自己的自动化中以同样的方式启动NPM呢? - Louis Somers

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接