Npm 安装同一软件包的多个版本

Npm 安装同一软件包的多个版本,npm,yarnpkg,Npm,Yarnpkg,我在1.5.11版本的依赖项中有angular: { "dependencies": { "angular": "1.5.11", "angular-foundation": "0.7.0" } } angular foundation恰好依赖于angular@>=1.3.0 为什么纱线安装angular@1.6.9作为angular foundation的嵌套依赖项,而不是使用项目的版本?这会导致angular在应用程序中存在两次,并且无法正常

我在1.5.11版本的依赖项中有
angular

{
    "dependencies": {
        "angular": "1.5.11",
        "angular-foundation": "0.7.0"
    }
}
angular foundation
恰好依赖于
angular@>=1.3.0

为什么纱线安装
angular@1.6.9
作为angular foundation的嵌套依赖项,而不是使用项目的版本?这会导致angular在应用程序中存在两次,并且无法正常工作:

node\u模块
角度(1.5.11)
角形基础(0.7.0)
节点单元
角度(1.6.9)


这种情况不会发生在任何人身上npm@5.6.0-npm对应用程序和软件包都使用1.5.11。为此,您需要使用
纱线
分辨率

因此,您的
package.json
将变成这样

{
  "name": "depdencies",
  "version": "1.0.0",
  "main": "index.js",
  "license": "MIT",

    "dependencies": {
        "angular": "1.5.11",
        "angular-foundation": "0.7.0"
    },
    "resolutions": {
      "**/angular": "1.5.11"
    }
}
它告诉
warn
任何子级角度相关性都将设置为
1.5.11
。更新后,请在下面运行

$ rm yarn.lock
$ yarn

纱线添加@npm:


纱线添加react17@npm:react@17

请在您的答案中添加一些解释。解释在这里