是否可以将全局包锁定到特定版本?例如,如果我这样做:
$ npm install -g some-awesome-package@1.7.0
如果 some-awesome-package@1.7.1 存在,我可以阻止 npm 更新这个特定的包吗?
是否可以将全局包锁定到特定版本?例如,如果我这样做:
$ npm install -g some-awesome-package@1.7.0
如果 some-awesome-package@1.7.1 存在,我可以阻止 npm 更新这个特定的包吗?
答案似乎是否定的。我打开了这个问题,但它被关闭了。很难想象我是唯一拥有这个用例的人。
可能有一种方法可以通过npm
CLI 执行此操作,但我找不到它。似乎也没有npm shrinkwrap
for 全局包。
我认为可能可以使用npm link
(它创建一个从本地包到全局文件夹的符号链接),但是在npm install -g somepackage@foo
之后运行npm link
,会覆盖以前安装的全局包。
当 npm 尝试覆盖全局安装的包时,强制 npm 失败的一种(非常hacky)方法是删除文件夹(对于运行的用户帐户)的写权限,npm
如下所示chmod -w /usr/local/lib/node_modules/<some package>
。
一旦你这样做了,npm
就不能安装/更新那个全局包,因为它没有写访问权。不过,我不能说我建议走那条路。