![](/img/trans.png)
[英]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.