亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

npm install(在預安裝時優雅地停止進程)

npm install(在預安裝時優雅地停止進程)

慕的地8271018 2023-09-14 20:19:19
如何npm install在預安裝腳本中(有條件地)停止?目前我有一個預安裝腳本preinstall.js:if (someCondition) {   process.kill(process.ppid, 'SIGKILL'); }package.json:{  "scripts": {      "preinstall": "node preinstall"   } }然而這將導致:npm ERR! code ELIFECYCLE npm ERR! errno 1我想優雅地退出該過程。有任何想法嗎?
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

阻止安裝節點包的最佳實踐是從預安裝腳本返回非零退出代碼。


您仍然會收到一堆npm ERR消息,但它不會像process.kill您共享的選項那樣終止 npm 進程,并且會獲得正確的 npm 日志。


即,在 中preinstall.js,你可以有這樣的東西:


if (someCondition) {

    console.error('someCondition happened, aborting installation');

    process.exit(1);

}

當someCondition遇到時,你會看到這樣的東西:


$ npm install ~/src/untracked/mypkg/mypkg-1.0.0.tgz


> [email protected] preinstall C:\Users\allon\src\git\samplenode\node_modules\mypkg

> node preinstall


someCondition happened, aborting installation


npm ERR! code ELIFECYCLE

npm ERR! errno 1

npm ERR! [email protected] preinstall: `node preinstall`

npm ERR! Exit status 1

npm ERR!

npm ERR! Failed at the [email protected] preinstall script.

npm ERR! This is probably not a problem with npm. There is likely additional logging output above.


npm ERR! A complete log of this run can be found in:

npm ERR!     /home/users/mureinik/.npm-cache/_logs/2020-11-29T09_58_46_179Z-debug.log

編輯:

從答案正文中的評論中捕獲討論,因此更容易找到其他人是否遇到相同的問題。這里的目標是使特定包的安裝失敗,而不使整個npm install過程失敗。此行為無法通過預安裝腳本控制(該腳本只能控制其所屬的包是否成功安裝),但如果依賴項optionalDependencies在package.json.


查看完整回答
反對 回復 2023-09-14
  • 1 回答
  • 0 關注
  • 381 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號