【问题标题】:How to throw "Lower Node Version Found in Package" error when installing NPM package having node version higher than current system node version?安装节点版本高于当前系统节点版本的 NPM 包时,如何抛出“在包中找到较低的节点版本”错误?
【发布时间】:2020-05-24 05:51:51
【问题描述】:

如果该模块支持的节点版本低于/高于系统/服务器节点版本,我想在安装 NPM 包时抛出错误。

我的用例是,我不想安装任何支持 8 及以下节点版本的 npm 模块。

感谢任何帮助。

【问题讨论】:

  • 即使模块也支持你运行的版本?你的日子不好过——大多数图书馆都试图故意支持旧版本。比如说,lodash 是否不那么重要,即使它支持节点 4+?这会影响您的依赖项的任何依赖项。你希望通过这样做来实现什么?
  • @Joe 基本上如果一个模块不是旧版本,比如我们在某些模块中收到警告,我们不推荐使用节点版本 4 及以下版本等。我想找到一种方法来找出安装包时的节点版本(npm install xyz)并抛出或打印警告消息。

标签: javascript node.js angular reactjs npm


【解决方案1】:

此功能显然不起作用,尽管有相反的文档。无论如何我都无法触发它。

如果您想严格检查支持的节点版本,请在 npm 中使用 engine-strict 标志。

https://docs.npmjs.com/misc/config#engine-strict

npm config set engine-strict true
npm i

你应该也能做到

npm i --engine-strict

将强制检查已安装模块中的engines 部分,如果任何模块不符合当前系统安装的node(和npm,如果指定)版本,则拒绝安装。

不要将此与已弃用的 engineStrict package.json 键混淆;那是不同的。

【讨论】:

  • 我认为这在 NPM 中已经被打破了 5 年。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-03-10
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
  • 1970-01-01
  • 2021-05-06
  • 1970-01-01
相关资源
最近更新 更多