【发布时间】:2018-11-01 14:27:30
【问题描述】:
我读到这个:How do I override nested NPM dependency versions?
很遗憾,它并没有解决我的问题。
我正在尝试将包从使用特定依赖项更改为使用该依赖项的另一个版本。
它是否内置在包中,它应该使用哪个版本的依赖项,或者是否可以更改它?
就我而言,我正在尝试将css-loader 对cssnano@3.10.0(最新)的默认依赖更改为依赖cssnano@4.0.0-rc.2(下一个) >)。
从上述链接的第二个答案中,用户 trickpatty 指出:
只要你运行 npm i 而不是编辑你的 package-lock.json 并将子依赖项添加到“依赖项” 在那里,将子依赖项添加到您的 package.json “依赖项” 部分
在 package.json 的 devDependencies 中包含 cssnano@4.0.0-rc.2 对 css-loader 没有任何作用。它仍然使用 cssnano 的另一个(默认)版本。
【问题讨论】:
-
“它是否内置在包中,它应该使用哪个版本的依赖项” “是否可以改变它”
-
@Phil 如果您运行
npm list cssnano,您将看到安装了两个版本的 cssnano,但 css-loader 确实仍然依赖于较低版本(它显示为“子文件夹”) -
@Phil “鉴于 NPM 的平面目录结构” - 嗯,NPM 以高度嵌套的目录结构着称,每个包都可以安装多个版本。你在想别的吗?
-
@Magnus Phil 完全错误。每个包首先使用其嵌套的依赖项
-
@StopHarmingMonica 我只是按照我当时认为的所见。我可以发誓一切都在
node_modules的顶层。我也很高兴在这里错了。很高兴我当时没有提供答案:)。 编辑: 很确定这就是我所看到的~npm.github.io/how-npm-works-docs/npm3/how-npm3-works.html,显然我很困惑
标签: javascript npm webpack package.json