为什么在我的一举一动中纱线都会发出警告?

时间:2020-03-06 09:40:26

标签: typescript webpack nativescript yarnpkg

我每次运行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 upgradeyarn cache clean都没有帮助

1 个答案:

答案 0 :(得分:1)

yarn(但是如果您使用npm作为客户端也将是相同的)警告您有关未满足的对等项依赖关系。 Peer dependencies与通常的依赖项不同之处在于,安装模块将安装其对等依赖项,隐式假设您已经拥有它们,或者无论如何都将需要它们来使用该软件包。

例如,babel-loader显然需要使用Webpack,并且它希望将其包含在package.json中,而不是作为传递依赖而引入。

在某些情况下,此操作无法按预期进行:

  • 一个软件包需要一个版本的对等依赖性,但是您有一个不兼容的版本号(尽管它仍然可以使用)
  • 一个包可能会列出您实际上不需要的对等项依赖关系,例如eslint-config-react-app需要一个eslint-plugin-flowtype的对等项,如果您不使用Flow,这毫无意义。

如何解决此问题?通过将这些依赖项添加到您的项目中。