[英]How to run multiple PowerShell commands with package.json scripts
[英]Multiple commands in package.json
这个命令: "start": "node server/server.js"
启动我的服务器,但在运行它之前,我还希望一个命令自动运行: 'webpack'
。
我想构建一个可以使用npm run someCommand
的脚本 - 它应该首先在终端中运行webpack
,然后是node server/server.js
。
(我知道如何使用 gulp 进行配置,但我不想使用它)
如果我理解正确,您首先要运行 webpack,然后编译运行 nodejs。 也许试试这个:
"start": "webpack && node server/server.js"
以下应该有效:
"start": "webpack && node server/server.js"
但是,为了可读性(特别是如果您计划在将来添加其他任务),您可能需要考虑为每个任务创建单独的条目,然后从start
调用每个条目。 就像是:
{
"init-assets": "webpack",
"init-server": "node server/server.js",
"start": "npm run init-assets && npm run init-server"
}
您还可以像这样链接命令:
"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"
}
&&
运算符在我的情况下, &&
效果不佳,因为我的一个命令根据情况以 1(错误)或 0(成功)退出,并且&&
链接运算符仅在前一个命令成功时才有效。
因此,为了添加其他答案,您可以使用以下选项来分隔命令:
&&
仅在第一个成功时运行第二个命令||
仅在第一个失败时运行第二个命令因此,如果您希望第二个命令运行第一个输出的任何命令,最好的方法是执行类似(command1 && command2) || command 2
之类的操作。 (command1 && command2) || command 2
其他选项在 unix(linux、macos)和 windows 环境中有所不同
;
UNIX 运行第二个命令,无论第一个命令输出什么;
WIN 单独的命令参数&
UNIX 在后台并行运行第一个命令与第二个命令&
WIN 无论第一个输出的是什么,都运行第二个命令此外,除了接受的答案和@pdoherty926 的答案,如果您想运行两个命令提示符,您可以在每个命令之前添加“start”:
{
"init-assets": "webpack",
"init-server": "node server/server.js",
"start": "start npm run init-assets && start npm run init-server"
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.