我知道可以指定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或更早版本,我如何指定只需要特定模块?
答案 0 :(得分:0)
您要求的是有点反对,因为您总是需要安装特定版本的软件包。通过致电npm install <package>
,您只需要求最新版本。将npm回滚到基于campatiblity的旧版本可能会让人感到困惑而且不是很“半”。
目前的解决方案如下:
在package.json
中指定以下内容:
{
"engines" : {
"node" : ">=0.10.3"
}
}
现在在早于10.3
的节点版本上安装此软件包会导致其失败。然后,用户必须运行npm view <package> versions
,然后运行npm install <package>@<version>