NPM - 依赖项需要多个版本的包,但只安装了一个版本

时间:2018-06-07 12:25:43

标签: node.js npm

在干净的环境中npm install之后,我遇到了b包的问题:

npm ls b   

a@2.0.6
├── b@3.0.0
├─┬ c@3.0.1
│ └── UNMET DEPENDENCY b@^1.0.0
└─┬ d@4.1.1
  └─┬ c@2.1.0
    └── UNMET DEPENDENCY b@^1.0.0

npm ERR! missing: b@^1.0.0, required by c@3.0.1
npm ERR! missing: b@^1.0.0, required by c@2.1.0

这显然会导致错误,因为包c需要b@^1.0.0,但会收到b@3.0.0

我努力强迫npm安装两个版本,就好像它们是不同的软件包一样。尝试通过npm docs,package-locks和shinkwrap,但没有成功。我该如何解决这个问题?

环境信息:

OS: macOS High Sierra 10.13.4
npm: 6.10
node: v8.8.1

1 个答案:

答案 0 :(得分:2)

玩弄我注意到,很多包都有UNMET DEPENDENCY。以下程序修复了问题:

rm -rf node_modules
npm cache clean --force
npm install

清理npm缓存后问题已完全解决:

a@2.0.6
├── b@3.0.0
├─┬ c@3.0.1
│ └── b@^1.0.0
└─┬ d@4.1.1
  └─┬ c@2.1.0
    └── b@^1.0.0

奇怪的错误。