为什么 yarn 在我的一举一动中都发出警告?
Why yarn is warning in every move I made?
每当我 运行 yarn global add ...
或 yarn global remove ...
时,它都会发出警告,例如...
warning "nativescript > marked-terminal@3.1.1" has incorrect peer dependency "marked@^0.4.0 || ^0.5.0".
warning "nativescript > nativescript-preview-sdk > tslint@5.4.3" has unmet peer dependency "typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev".
warning "nativescript > nativescript-preview-sdk > tslint > tsutils@2.29.0" has unmet peer dependency "typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev".
或
yarn add ...
和 yarn remove ...
命令发出诸如 ...
之类的警告
warning " > babel-loader@8.0.6" has unmet peer dependency "webpack@>=2".
warning "nativescript-dev-webpack > ts-loader@5.4.5" has unmet peer dependency "typescript@*".
warning " > vue-loader@15.4.2" has unmet peer dependency "css-loader@*".
如何解决这些依赖问题?
注意:看来yarn upgrade
和yarn cache clean
也无济于事
yarn
(但如果您使用 npm
作为客户端,它会是一样的)警告您未满足的对等依赖项。 Peer dependencies 与您通常的依赖项的不同之处在于安装模块将 不会 安装其对等依赖项,隐含的假设是您已经拥有它们,或者无论如何都需要它们来使用那个包裹。
例如,babel-loader
显然需要使用 Webpack
,而不是将其作为传递依赖项引入,它希望您将其包含在 package.json
中。
有几种情况无法按预期工作:
- 一个包需要一个版本的对等依赖,但你有一个不兼容的版本号(尽管它可能仍然有效)
- 一个包可能会列出一个你真的不需要的对等依赖 - 例如
eslint-config-react-app
需要 eslint-plugin-flowtype
的对等依赖,如果你不使用 Flow,那是没有意义的。
如何解决这个问题?通过将这些依赖项添加到您的项目中。
每当我 运行 yarn global add ...
或 yarn global remove ...
时,它都会发出警告,例如...
warning "nativescript > marked-terminal@3.1.1" has incorrect peer dependency "marked@^0.4.0 || ^0.5.0".
warning "nativescript > nativescript-preview-sdk > tslint@5.4.3" has unmet peer dependency "typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev".
warning "nativescript > nativescript-preview-sdk > tslint > tsutils@2.29.0" has unmet peer dependency "typescript@>=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev".
或
yarn add ...
和 yarn remove ...
命令发出诸如 ...
warning " > babel-loader@8.0.6" has unmet peer dependency "webpack@>=2".
warning "nativescript-dev-webpack > ts-loader@5.4.5" has unmet peer dependency "typescript@*".
warning " > vue-loader@15.4.2" has unmet peer dependency "css-loader@*".
如何解决这些依赖问题?
注意:看来yarn upgrade
和yarn cache clean
也无济于事
yarn
(但如果您使用 npm
作为客户端,它会是一样的)警告您未满足的对等依赖项。 Peer dependencies 与您通常的依赖项的不同之处在于安装模块将 不会 安装其对等依赖项,隐含的假设是您已经拥有它们,或者无论如何都需要它们来使用那个包裹。
例如,babel-loader
显然需要使用 Webpack
,而不是将其作为传递依赖项引入,它希望您将其包含在 package.json
中。
有几种情况无法按预期工作:
- 一个包需要一个版本的对等依赖,但你有一个不兼容的版本号(尽管它可能仍然有效)
- 一个包可能会列出一个你真的不需要的对等依赖 - 例如
eslint-config-react-app
需要eslint-plugin-flowtype
的对等依赖,如果你不使用 Flow,那是没有意义的。
如何解决这个问题?通过将这些依赖项添加到您的项目中。