纱线安装同一包的多个版本
Yarn installing multiple versions of the same package
我在 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 的嵌套依赖而不是使用项目的版本?这会导致 angular 在应用程序中出现两次并且无法正常工作:
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。
您需要为此使用 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
任何子 angular 依赖项都将设置为 1.5.11
。在下面 运行 更新后
$ rm yarn.lock
$ yarn
https://classic.yarnpkg.com/en/docs/cli/add/#toc-yarn-add-alias
yarn add <alias-package>@npm:<package>
yarn add react17@npm:react@17
我在 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 的嵌套依赖而不是使用项目的版本?这会导致 angular 在应用程序中出现两次并且无法正常工作:
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。
您需要为此使用 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
任何子 angular 依赖项都将设置为 1.5.11
。在下面 运行 更新后
$ rm yarn.lock
$ yarn
https://classic.yarnpkg.com/en/docs/cli/add/#toc-yarn-add-alias
yarn add <alias-package>@npm:<package>
yarn add react17@npm:react@17