【问题标题】:Rails: Webpack-dev-server has unmet peer dependencyRails:Webpack-dev-server 具有未满足的对等依赖关系
【发布时间】:2020-08-17 07:17:57
【问题描述】:

我目前正在尝试使用 DockerUbuntu 18.0.4 上设置 Rails 6.0.2 应用程序。 我已经使用PostgreSQL 成功设置了数据库,并通过运行以下命令安装了必要的 gem:

bundle install

但是,当我尝试使用以下命令安装节点包时:

yarn install

我收到下面的消息,这让我有些担心有什么不对劲:

警告 " > webpack-dev-server@3.10.3" 具有未满足的对等依赖关系 "webpack@^4.0.0 || ^5.0.0"。

警告“webpack-dev-server > webpack-dev-middleware@3.7.2”有未满足的对等依赖“webpack@^4.0.0”。

我尝试了一些解决方案,但都不起作用。我需要帮助。谢谢。

【问题讨论】:

  • 这些是警告,你不用太在意,Rails webpacker 的人正在负责更新 webpack 的版本。
  • 是的,你说得对,它们是警告,我只是对它们感到不舒服。

标签: ruby-on-rails webpack


【解决方案1】:

在终端中转到https://www.npmjs.com/package/webpack-dev-server?activeTab=versionsnpm i webpack-dev-server

【讨论】:

    【解决方案2】:

    我是这样解决的

    只需运行以下命令即可将 yarn 版本升级到您想要的版本:

    yarn upgrade webpack@^4.0.0
    

    注意:您可以将4.0.0 替换为yarn 所需的版本,例如5.0.0

    另一种解决方案

    将你想要的 webpack 版本添加到你的 package.json 文件中。这里使用的 webpack 版本是4.43.0:

    "devDependencies": {
      "webpack": "^4.43.0",
      "webpack-dev-server": "^3.11.0"
    }
    

    然后运行yarn install安装webpack

    仅适用于 Docker 应用程序

    Dockerfile 中的yarn install 命令之前添加命令:

    RUN yarn upgrade webpack@^4.0.0 \
        yarn install
    

    在 GitHub 上参考这个:Unmet peer dependencies

    就是这样。

    我希望这会有所帮助

    【讨论】:

    • 您不应将此RUN 命令添加到您的Dockerfile。升级软件包后,您的 yarn.lock 文件将知道您要安装的版本。这不是Dockerfile 的作用。 Dockerfile 用于准备您的环境,而不是配置您的应用程序。
    • 虽然我在一定程度上同意你的观点,但是我认为命令RUN yarn upgrade webpack@^4.0.0 不会配置你的应用程序,而是通过在你的应用程序中设置yarn 来准备你的应用程序环境环境。就像命令 RUN gem install bundler -v 2.1.4 在您的应用程序环境中设置 Bundler gem 一样。
    • 那么yarn.lock 有什么意义呢?
    猜你喜欢
    • 1970-01-01
    • 2018-01-21
    • 1970-01-01
    • 2016-07-10
    • 1970-01-01
    • 1970-01-01
    • 2016-08-29
    • 2017-08-25
    • 2018-02-28
    相关资源
    最近更新 更多