只有当节点的版本足够大时,我如何才能要求包?

我知道可以为一个包指定一个最小版本的节点,以允许在没有警告的情况下安装它 。

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

但是,在我的情况下,我试图使我的软件包与不能运行0.10.x以上版本节点的硬件兼容。 具体而言,这是使用ARMv5处理器的硬件,在V8的较新版本中支持这种处理器。 为此,我需要一些polyfills,例如os-homedir 。 我不希望实际上要求安装任何这样的软件包,如果不需要的话,因为它们被标记为不赞成使用,在上面的例子中,它的npmjs页面被标记为甚至没有被使用,虽然我目前能够npm install它。

我如何指定只有当系统上的nodejs版本是0.10.x或更高版本时才需要特定的模块?

你所要求的是有些反半导体,因为你总是要安装一个特定版本的软件包。 通过调用npm install <package>您只需要获取最新版本。 让npm回滚到基于活动性的旧版本可能会令人困惑,而不是非常“沉闷”。

目前的解决scheme如下:

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

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

现在在10.3以前的节点版本上安装这个软件包会导致失败。 然后,用户必须运行npm view <package> versions ,然后通过运行npm install <package>@<version>安装相应版本的软件包