是否可以将全局包锁定到特定版本?例如,如果我这样做:
$ 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 更新这个特定的包吗?
答案似乎是否定的。我打开了这个问题,但它被关闭了。很难想象我是唯一拥有这个用例的人。
可能有一种方法可以通过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就不能安装/更新那个全局包,因为它没有写访问权。不过,我不能说我建议走那条路。