5

是否可以将全局包锁定到特定版本?例如,如果我这样做:

$ npm install -g some-awesome-package@1.7.0

如果 some-awesome-package@1.7.1 存在,我可以阻止 npm 更新这个特定的包吗?

4

2 回答 2

3

答案似乎是否定的。我打开了这个问题,但它被关闭了。很难想象我是唯一拥有这个用例的人。

于 2013-03-03T23:28:30.890 回答
1

可能有一种方法可以通过npmCLI 执行此操作,但我找不到它。似乎也没有npm shrinkwrapfor 全局包。

我认为可能可以使用npm link(它创建一个从本地包到全局文件夹的符号链接),但是在npm install -g somepackage@foo之后运行npm link,会覆盖以前安装的全局包。

当 npm 尝试覆盖全局安装的包时,强制 npm 失败的一种(非常hacky)方法是删除文件夹(对于运行的用户帐户)的写权限,npm如下所示chmod -w /usr/local/lib/node_modules/<some package>

一旦你这样做了,npm就不能安装/更新那个全局包,因为它没有写访问权。不过,我不能说我建议走那条路。

于 2013-02-16T00:56:14.013 回答