此命令:"start": "node server/server.js"启动了我的服务器,但是在运行这个之前,我还想让一个命令自动运行:'webpack'。我想构建一个可以用npm run someCommand运行的脚本-它应该首先在终端中运行webpack,然后运行node server/server.js。(我知道如何用gulp配置它,但我不想使用它)
"start": "node server/server.js"
'webpack'
npm run someCommand
webpack
node server/server.js
c9x0cxw01#
如果我理解正确的话,你需要先运行webpack,然后在编译后运行nodejs。不妨试试这个:
"start": "webpack && node server/server.js"
taor4pac2#
下面的 * 应该 * 工作:"start": "webpack && node server/server.js"但是,为了可读性(特别是如果您计划在将来添加其他任务),您可能需要考虑为每个任务创建单独的条目,然后从start调用每个条目。比如说
start
{ "init-assets": "webpack", "init-server": "node server/server.js", "start": "npm run init-assets && npm run init-server" }
sh7euo9m3#
&&
在我的例子中,&&不能很好地工作,因为我的一个命令有时会以非零的退出代码(错误)退出,并且**&&链接操作符只有在前一个命令成功时才能工作**。主链接操作符的行为如下:
||
因此,如果您希望第二个命令运行第一个命令输出的任何内容,最好的方法是执行类似(command1 && command2) || command 2的操作
(command1 && command2) || command 2
其他分隔符在Unix(linux,macos)和Windows环境中是不同的
;
&
Windows here和unix here的所有链接运算符
h9vpoimq4#
您也可以像这样链接命令:
"scripts": { "clean": "npm cache clean --force", "clean:complete": "npm run clean && npm uninstall -g @angular/cli && rmdir /Q /S node_modules", "clean:complete:install": "npm run clean:complete && npm i -g @angular/cli && npm i && npm install --save-dev @angular/cli@latest" }
w41d8nur5#
此外,沿着接受的答案和@pdoherty926的答案外,如果你想运行两个命令提示符,你可以在每个命令前添加“start”:
{ "init-assets": "webpack", "init-server": "node server/server.js", "start": "start npm run init-assets && start npm run init-server" }
5条答案
按热度按时间c9x0cxw01#
如果我理解正确的话,你需要先运行webpack,然后在编译后运行nodejs。不妨试试这个:
taor4pac2#
下面的 * 应该 * 工作:
"start": "webpack && node server/server.js"
但是,为了可读性(特别是如果您计划在将来添加其他任务),您可能需要考虑为每个任务创建单独的条目,然后从
start
调用每个条目。比如说sh7euo9m3#
更好理解
&&
运算符在我的例子中,
&&
不能很好地工作,因为我的一个命令有时会以非零的退出代码(错误)退出,并且**&&
链接操作符只有在前一个命令成功时才能工作**。主链接操作符的行为如下:
&&
仅在第一个成功(AND)时运行下一个命令||
仅在第一个失败时运行下一个命令(OR)因此,如果您希望第二个命令运行第一个命令输出的任何内容,最好的方法是执行类似
(command1 && command2) || command 2
的操作其他OS特定链接操作符
其他分隔符在Unix(linux,macos)和Windows环境中是不同的
;
UNIX运行第二个命令,不管第一个命令输出了什么;
WIN单独的命令参数&
UNIX在后台并行运行第一个命令和第二个命令&
WIN运行第二个命令,不管第一个命令输出了什么Windows here和unix here的所有链接运算符
h9vpoimq4#
您也可以像这样链接命令:
w41d8nur5#
此外,沿着接受的答案和@pdoherty926的答案外,如果你想运行两个命令提示符,你可以在每个命令前添加“start”: