我读到了这个:How do I override nested NPM dependency versions?
不幸的是,它并没有解决我的问题。
我正在尝试将包更改为使用特定依赖项来使用该依赖项的其他版本。
它是否应该在包中内置它应该使用的依赖版本,还是可以更改它?
在我的具体情况下,我正在尝试更改css-loader
对cssnano@3.10.0
(最新)的默认依赖关系,而不是依赖于cssnano@4.0.0-rc.2
(< EM>下)。
从上面链接的第二个答案中,用户 trickpatty 注意到:
这将在你运行npm i时删除,而不是编辑你的 package-lock.json并将子依赖项添加到“依赖项” 在那里,将子依赖项添加到package.json“dependencies” 节
在package.json中包含cssnano@4.0.0-rc.2
的devDependencies对css-loader
没有任何作用。它仍然使用cssnano
的其他(默认)版本。
答案 0 :(得分:-1)
在 package.json 中,您可以添加resolutions
并提供所使用的依赖路径。这是我的项目中的示例:
{
"resolutions": {
"helmet/helmet-csp": "2.9.1",
"jest/**/handlebars": "4.5.3"
}
}
答案 1 :(得分:-2)
该线程有点陈旧,也许已经解决了,但是也许有人遇到了相同的问题。
我认为,您不应更改依赖项的依赖项版本。每个项目的开发,测试和发布都要考虑其声明的依赖版本。您可以破坏或更改外部更改其依赖关系的软件包的行为。
相反,请考虑制作项目的分支(css-loader),更改依赖项版本,自己进行测试,并使用分支。您还可以向项目维护者打开拉取请求(如果您认为更改将使社区受益)或发布您的版本(遵守许可政策)。