我在1.5.11的依赖项中有angular
:
{
"dependencies": {
"angular": "1.5.11",
"angular-foundation": "0.7.0"
}
}
angular-foundation
恰好取决于angular@>=1.3.0
。
为什么Yarn将angular@1.6.9
安装为angular-foundation的嵌套依赖项而不是使用项目的版本?这会导致角度在应用程序中存在两次并且无法正常工作:
node_modules
angular (1.5.11)
angular-foundation (0.7.0)
node_modules
angular (1.6.9)
npm@5.6.0不会发生这种情况 - 对于应用程序和软件包,npm使用1.5.11。
答案 0 :(得分:9)
您需要为此
使用Yarn
分辨率
https://yarnpkg.com/lang/en/docs/selective-version-resolutions/
因此,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"
}
}
告诉yarn
任何子角度依赖关系都将设置为1.5.11
。更新下面的运行后
$ rm yarn.lock
$ yarn
答案 1 :(得分:1)
https://classic.yarnpkg.com/en/docs/cli/add/#toc-yarn-add-alias
yarn add <alias-package>@npm:<package>
yarn add react17@npm:react@17