我知道可以指定 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/