node.js - 如何仅在 Node 版本足够旧的情况下才需要包?

标签 node.js npm

我知道可以指定 minimum version of node for a package to allow itself to be installed without warning .

还有一个问题是关于[仅安装与您的软件包兼容的最新版本,而不安装更新的版本。]

但是,就我而言,我试图使我的包与无法运行高于 0.10.x 的 Node 版本的硬件兼容。具体来说,这是使用 ARMv5 处理器的硬件,在较新版本的 V8 中已不再支持该处理器。为此,我需要一些填充,例如 os-homedir 。如果不需要的话,我实际上不想要求安装任何此类软件包,因为它们被标记为已弃用,并且在上面的示例中,它的 npmjs 页面甚至被标记为未使用,尽管我目前可以 npm install 它。

如何指定仅当系统上的 Nodejs 版本为 0.10.x 或更早版本时才需要特定模块?

最佳答案

您所要求的有点反 semver,因为您始终必须安装软件包的特定版本。通过调用npm install <package>您只是要求最新版本。根据兼容性让 npm 回滚到旧版本可能会令人困惑,而且不是很“semver”。

当前的解决方案如下:

在您的 package.json 中指定以下内容:

{
   "engines" : {
       "node" : ">=0.10.3"
   }
}

现在在早于 10.3 的 Node 版本上安装此软件包会导致其失败。然后用户必须运行 npm view <package> versions然后通过运行 npm install <package>@<version> 安装适当版本的软件包

关于node.js - 如何仅在 Node 版本足够旧的情况下才需要包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45826599/

相关文章:

javascript - 如果我使用 "npm install --save-dev"进行 NPM 安装,如何检查更新

node.js - 在 Angular 9 中使用 Node 加密

javascript - Electron,nodejs : App wont start, 在其中一个模块中找不到应用程序。

javascript - 有条件地查找并替换双引号中指定的字符串

javascript - 避免类似协程的 JavaScript 函数中的 "yield"重复

node.js - 使用 NodeJS 了解 Diffie-Hellman

node.js - 类型错误 : parse is not a function

windows - Windows 上的 Nodejitsu

javascript - 实验警告 : The http2 module is an experimental API

node.js - 错误: Cannot find module 'zeparser'