节点npm安装,强制依赖依赖安装特定的版本

我有一个子节点,打破了节点6.2.0。 它使用的是旧版本的子依赖关系。

将我的package.json设置为指向更新的依赖关系与npm install xxx使用的依赖关系没有任何关系。

看来我必须在github中分配每个依赖项,将它们的package.json指向新的提交,然后再次尝试npm install,这似乎是一个用户体验的recursion恶梦。 做什么?

您可以使用npm shrinkwrap命令,这将创build一个npm-shrinkwrap.json文件,在此文件中可以修改运行npm install时依赖关系的依赖项应该使用哪个版本。

而且,在运行npm shrinkwrap之前,您必须安装所有的依赖关系,否则您将以空的npm-shrinkwrap.json文件结束。

这篇博客文章讨论了它是如何工作的,这里是关于npm shrinkwrap的文档 。

值得注意的是,默认情况下, npm shrinkwrap devDependencies将不包含任何devDependencies所以如果你使用--save-dev安装了有问题的软件包,你需要明确地包含这些软件包

npm shrinkwrap --dev