W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
運(yùn)行任意包腳本
npm run-script <command> [--silent] [-- <args>...]
alias: npm run
這會從包的"scripts"
對象運(yùn)行任意命令。如果沒有?"command"
提供,它將列出可用的腳本。?run[-script]
由 test、start、restart 和 stop 命令使用,但也可以直接調(diào)用。當(dāng)包中的腳本打印出來時,它們被分成生命周期(測試、啟動、重啟)和直接運(yùn)行的腳本。
從 開始npm@2.0.0
,你可以在執(zhí)行腳本時使用自定義參數(shù)。getopt--
使用?特殊選項來分隔選項的結(jié)尾。npm 會將 之后的所有參數(shù)直接傳遞給你的腳本:--
npm run test -- --grep="pattern"
參數(shù)只會傳遞給之后指定的腳本npm run
?,不會傳遞給任何前腳本或后腳本。
該env
腳本是一個特殊的內(nèi)置命令,可用于列出腳本在運(yùn)行時可用的環(huán)境變量。如果包中定義了“env”命令,它將優(yōu)先于內(nèi)置命令。
除了 shell 預(yù)先存在的PATH
,npm run
添加?node_modules/.bin
到PATH
提供的腳本中。本地安裝的依賴項提供的任何二進(jìn)制文件都可以在沒有node_modules/.bin
?前綴的情況下使用。例如,如果你的包中有一個devDependency
on?tap
,你應(yīng)該寫:
"scripts": {"test": "tap test/\*.js"}
代替
"scripts": {"test": "node_modules/.bin/tap test/\*.js"}
運(yùn)行你的測試。
你的腳本在其中運(yùn)行的實際 shell 取決于平臺。默認(rèn)情況下,在類 Unix 系統(tǒng)上它是/bin/sh
命令,在 Windows 上它是cmd.exe
.?所指的實際外殼/bin/sh
也取決于系統(tǒng)。由于npm@5.1.0
可以自定義與外殼script-shell
配置。
腳本從模塊的根目錄運(yùn)行,無論您在調(diào)用npm run
.?如果你希望腳本根據(jù)你所在的子目錄使用不同的行為,你可以使用?INIT_CWD
環(huán)境變量,它保存你運(yùn)行npm run
.
npm run
將NODE
環(huán)境變量設(shè)置為執(zhí)行的node
可執(zhí)行文件npm
。此外,如果--scripts-prepend-node-path
通過,則將node
駐留的目錄添加到?PATH
.?如果--scripts-prepend-node-path=auto
傳遞(這是npm
v3 中的默認(rèn)值),則僅當(dāng)node
在PATH
.
如果你嘗試在沒有node_modules
目錄的情況下運(yùn)行腳本并且它失敗了,你將收到 run 警告npm install
,以防萬一您忘記了。
你可以使用該--silent
標(biāo)志來防止npm ERR!
在出錯時顯示輸出。
你可以使用該--if-present
標(biāo)志來避免在腳本未定義時以非零退出代碼退出。這使你可以在不中斷執(zhí)行鏈的情況下運(yùn)行可能未定義的腳本。
你可以使用workspace
或workspaces
configs 以便"scripts"
在指定工作區(qū)的上下文中從包的對象運(yùn)行任意命令。如果沒有"command"
提供,它將列出每個配置的工作區(qū)的可用腳本。
給定一個配置了工作區(qū)的項目,例如:
.
+-- package.json
`-- packages
+-- a
| `-- package.json
+-- b
| `-- package.json
`-- c
`-- package.json
假設(shè)在根級別package.json
文件中正確設(shè)置了工作區(qū)配置?。例如:
{
"workspaces": [ "./packages/*" ]
}
并且每個配置的工作區(qū)都有一個配置的test
腳本,我們可以使用workspaces
配置在所有工作區(qū)中運(yùn)行測試:
npm test --workspaces
過濾工作區(qū)
還可以使用workspace
?配置以及名稱或目錄路徑在單個工作區(qū)中運(yùn)行腳本:
npm test --workspace=a
該workspace
配置還可以以運(yùn)行在多個工作區(qū)的背景下,特定的腳本中指定多次。workspace
在命令行中為配置定義值時,也可以-w
用作簡寫,例如:
npm test -wa -wb
最后一條命令將test
在./packages/a
和./packages/b
?包中運(yùn)行。
String
(可多次設(shè)置)允許在當(dāng)前項目的已配置工作區(qū)的上下文中運(yùn)行命令,同時通過僅運(yùn)行此配置選項定義的工作區(qū)進(jìn)行過濾。
workspace
配置的有效值為:
為該npm init
命令設(shè)置時,可以將其設(shè)置為尚不存在的工作區(qū)的文件夾,以創(chuàng)建該文件夾并將其設(shè)置為項目中的全新工作區(qū)。
此值不會導(dǎo)出到子進(jìn)程的環(huán)境中。
false
Boolean
啟用在所有已配置工作區(qū)的上下文中運(yùn)行命令。
此值不會導(dǎo)出到子進(jìn)程的環(huán)境中。
false
Boolean
如果為真,NPM不會有錯誤代碼時退出run-script
被調(diào)用未在定義腳本scripts
的部分package.json
。當(dāng)需要有選擇地運(yùn)行存在的腳本并在腳本失敗時失敗時,可以使用此選項。這很有用,例如,在運(yùn)行可能僅適用于其他通用 CI 設(shè)置中的某些構(gòu)建的腳本時。
false
Boolean
如果為 true
,則 npm 不會運(yùn)行 package.json
文件中指定的腳本。
請注意,明確用于運(yùn)行特定腳本的命令,例如?npm start
,?npm stop
,?npm restart
,?npm test
, 并且npm run-script
?如果ignore-scripts
已設(shè)置仍將運(yùn)行其預(yù)期腳本,但它們不會運(yùn)行任何前置或后置腳本。
null
或String
用于腳本的 shell 與npm exec
,npm run
和npm init <pkg>
命令一起運(yùn)行。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: