批处理文件运行npm start

5

我有一个Angular应用程序,可以在控制台中使用命令npm start启动。现在我想创建一个批处理文件,在启动时执行"npm install"。这是我创建的批处理文件:

frontend.bat

cd "<path>"
npm start

当我执行这个文件时,控制台会很快出现,但之后什么也没有发生。
我的问题是,能否在批处理文件中执行npm start?如果不能,请问还有其他方法可以使用批处理文件来启动angular应用程序吗?
谢谢。

4
我假设你使用的npm实际上是npm.cmdnpm.bat,因此你应该使用Call,即call npm...,或者使用扩展名来避免混淆,如call npm.cmd...。当脚本从Call返回时,你的脚本将运行下一行,如果没有,请添加一个TimeoutPause,以便在窗口关闭之前有足够的时间阅读任何内容。 - Compo
3个回答

6

您可以尝试使用以下方法暂停批处理文件的执行:

cd "<path>"
npm start
pause

否则,批处理文件将退出并与npm一起关闭。

12
你需要使用 call npm start,因为 npm 是一个批处理文件;否则 pause 将永远不会执行... (备注:此处翻译的是一段代码提示语句,涉及到技术术语和操作指令) - aschipfl
“pause” 命令对我无效,因为我运行 “npm run start” 并传递参数。 - Or Assayag

2
NPM执行退出操作。您可以按照需要进行修改。 CMD /C "%ProgramFiles%\nodejs\npm" i --loglevel error的意思是在命令提示符下运行该命令,其目的是安装npm包并将错误日志级别设置为error。

2
另一种方法是在文件末尾写入cmd /k。这比pause更好,因为使用pause时,一旦按下任何键,终端窗口就会关闭。而cmd /k会保持窗口打开并准备好输入。为了保持清洁的终端,您可以在其前面添加@echo off,这样cmd /k就不会被打印出来。
cd "<path>"
npm start
@echo off
cmd /k

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