锁定全局npm包

时间:2013-02-16 00:03:17

标签: node.js

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

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

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

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

可能有办法通过npm CLI执行此操作,但我找不到它。全局包似乎也没有npm shrinkwrap

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

在尝试覆盖全局安装的程序包时强制npm失败的一种(非常hacky)方法是删除该文件夹(对于运行npm的用户帐户)的写权限{chmod -w /usr/local/lib/node_modules/<some package> 1}}。

执行此操作后,npm无法安装/更新该全局程序包,因为它没有写访问权限。不过,我不能说我建议走这条路。