如果节点的版本足够大,我怎么才能要求包?

时间:2017-08-22 20:39:58

标签: node.js npm

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

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

但是,在我的情况下,我试图使我的软件包与无法运行比0.10.x更新的节点版本的硬件兼容。具体来说,这是使用ARMv5处理器的硬件,在较新版本的V8中删除了支持。为此,我需要一些polyfill,例如,os-homedir。我不想实际要求安装任何此类软件包,如果不需要,因为它们被标记为已弃用,并且在上面的示例中,它的npmjs页面被标记为甚至没有使用,尽管我目前能够npm install它。

如果系统上存在的nodejs版本是0.10.x或更早版本,我如何指定只需要特定模块?

1 个答案:

答案 0 :(得分:0)

您要求的是有点反对,因为您总是需要安装特定版本的软件包。通过致电npm install <package>,您只需要求最新版本。将npm回滚到基于campatiblity的旧版本可能会让人感到困惑而且不是很“半”。

目前的解决方案如下:

package.json中指定以下内容:

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

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

来安装相应版本的软件包