npm install(在预安装时正常停止过程)

提姆

如何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

我想优雅地退出该过程。

有任何想法吗?

穆雷尼克

防止安装节点包的最佳实践是,它从预安装脚本中返回非零退出代码。

您仍然会收到一堆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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

npm install错误退出预安装脚本

来自分类Dev

使用npm install安装glup时出错

来自分类Dev

npm install 与 npm install <library>

来自分类Dev

安装npm canvas时出错

来自分类Dev

从 npm 安装东西时出错

来自分类Dev

使用“ npm install pcap”安装pcap时出错

来自分类Dev

使用“ npm install wdio”安装webdriverIO时出错

来自分类Dev

我可以在安装 NuGet 包时执行 npm install 吗?

来自分类Dev

运行 npm install 时出错

来自分类Dev

运行npm install cordova时npm install不起作用

来自分类Dev

执行“ npm install”后安装了太多的npm模块

来自分类Dev

npm install - 如何触发 npm 任务作为安装后挂钩?

来自分类Dev

npm install与npm install --save相同吗?

来自分类Dev

安装sinopia npm后无法正常工作

来自分类Dev

npm安装后键入无法正常工作

来自分类Dev

Docker NPM安装无法正常工作

来自分类Dev

npm停止工作

来自分类Dev

为什么在尝试安装npm时出现npm错误-38?

来自分类Dev

brew install npm“ npm:找不到命令”

来自分类Dev

运行npm install取消构建全局npm

来自分类Dev

NPM:运行npm时找不到npm-cli.js

来自分类Dev

NPM:运行npm时找不到npm-cli.js

来自分类Dev

使用npm安装gulp

来自分类Dev

从父目录安装npm

来自分类Dev

安装多个npm版本

来自分类Dev

npm安装如何工作

来自分类Dev

Docker NPM安装失败

来自分类Dev

NPM安装失败

来自分类Dev

NPM安装错误