vue / cli 3未满足的依赖关系

时间:2018-08-19 17:06:54

标签: vue.js vue-cli vue-cli-3

我尝试了最新的vue-cli 3工具...完整安装 项目设置正确完成,但是一旦我添加了新的依赖项,我就会得到警告列表,未满足的依赖项……是由于yarn(我没有测试npm ..)引起的。无论如何要解决它们?

    $ yarn add vue-i18n
    yarn add v1.9.4
    [1/4]   Resolving packages...
    [2/4]   Fetching packages...
    [3/4]   Linking dependencies...
    warning "@vue/cli-plugin-babel > babel-loader@8.0.0-beta.4" has unmet peer dependency "webpack@>=2".
    warning "@vue/cli-plugin-eslint > eslint-loader@2.1.0" has unmet peer dependency "webpack@>=2.0.0 <5.0.0".
    warning "@vue/cli-plugin-pwa > workbox-webpack-plugin@3.4.1" has unmet peer dependency "webpack@^2.0.0 || ^3.0.0 || ^4.0.0".
    warning "@vue/eslint-config-prettier > eslint-config-prettier@2.10.0" has unmet peer dependency "eslint@>=3.14.1".
    warning " > babel-core@7.0.0-bridge.0" has unmet peer dependency "@babel/core@^7.0.0-0".
    warning " > sass-loader@7.1.0" has unmet peer dependency "webpack@^3.0.0 || ^4.0.0".
    [4/4]   Building fresh packages...
    success Saved lockfile.
    success Saved 1 new dependency.
    info Direct dependencies
    └─ vue-i18n@8.0.0
    info All dependencies
    └─ vue-i18n@8.0.0
    ✨  Done in 34.88s.

1 个答案:

答案 0 :(得分:2)

tl; dr:除了webpack以外可能不是问题(但仍然可能不是问题)。由于webpack是多个依赖关系的对等依赖关系,由于在不同的依赖关系中列出了不同的版本约束,因此可能会出现不确定性行为。

发生了什么

Yarn会显示这些警告,以防止需要不同版本的第三子依赖项的不同依赖项,这可能会导致不确定性行为。例如,这里babel-loadereslint-loaderworkbox-webpack-pluginsass-loader在webpack上的版本限制都略有不同,这意味着没有yarn.lock文件时版本限制并非完全可以预测。要解决此问题,您可以将webpack添加为项目的显式依赖项,也可以将yarn upgrade webpack@x.x.x添加到所需的版本中,然后依靠yarn.lock来指定此版本。

解决方案

在您的特定情况下,您应该担心的唯一同级依赖项是webpack,因为所有其他依赖项只需要一个依赖项。但是,如果您不对这些警告进行任何操作,则很可能不会出现问题。

理想情况下,Vue应该通过在vue create过程中将webpack添加到package.json来解决此问题,但是由于我最终能够重现此错误,所以我猜测他们还没有解决。如果尚未对此做出建议,我鼓励您create an issue

有关对等依赖项的更多信息

当项目维护者认为使用软件包时可能会产生依赖关系冲突时,他们可以在项目的package.json中指定对等依赖关系。例如,如果您访问package.json的{​​{1}},则会在@vue/cli-plugin-babel部分中看到webpack@>=2。编写此Vue插件的人可能会添加peerDependencies作为对等依赖项,因为他们知道webpack的受欢迎程度,并想警告用户该插件使用了webpack,以帮助他们应对潜在的冲突。

尽管我写的是webpack而不是npm,但我发现this article提出了一些有用的建议,可用于处理对等依赖性和对等依赖性警告。