【问题标题】:YARN/NPM: installing package versions that are compatible to certain dependency versionYARN/NPM:安装与某些依赖版本兼容的包版本
【发布时间】:2018-07-27 15:18:11
【问题描述】:

假设我在package.json 文件中有以下依赖项:

  "dependencies": {
    "A": "1.0.0"
  }

同样,我们假设包 A 的当前版本是3.0.0。但我的项目中需要A 的1.0.0 版本,所以我在package.json 中明确指定它。

鉴于此,假设我需要在我的项目中拥有另一个依赖于A 的包B。 B的最新版本也是3.0.0,但与"A": "1.0.0"不兼容。与"A": "1.0.0" 兼容的B 的正确版本是"B": "1.0.0"。

问题是——

我如何检测包B 与"A":"1.0.0" 兼容的版本?

有没有办法自动安装 依赖于A 并与"A": "1.0.0" 兼容的软件包?

【问题讨论】:

    标签: javascript npm yarnpkg


    【解决方案1】:

    没有。安装节点包时无法安装兼容包。您必须在 package.json 中手动指定它们。


    但是,您可以尝试以下方法:

    1. 在 package.json 中为您的一个主包定义特定的包版本。

    2. 安装依赖项(主包)。 npm install

    3. 不要指定主包的依赖模块版本。
    4. 安装依赖项。 npm install DEPENDENCY_PACKAGE

    这可能会起作用,因为据我记得,一旦我定义了主包而不是它的依赖包,并且执行了上述方法并安装了兼容版本。 (我已经定义了节点引擎版本。但我不确定这种方法是否也适用于其他包。)

    请尝试让我知道这是否适合您。

    【讨论】:

      【解决方案2】:

      如果你在项目中强制 B 依赖,npm install 你强制的版本。

      例如

      "dependencies": {
          "A": "1.0.0",
          "B": "1.0.0"
      }
      

      NPM 将在您的项目中安装 B 1.0.0。

      要说我试图创建一个项目

      ...
      "dependencies": {
         "rxjs": "5.0.1",
         "chai": "4.1.0"
      },
      ...
      

      Rxjs 已在 4.1.2 版本中修复了 chai 包依赖项。

      我在package.json 上强制安装了 4.1.0,npm 安装了 4.1.0 版

      【讨论】:

        【解决方案3】:

        B 应该定义自己对特定版本的A 的依赖,例如0.0.1。在这种情况下,当您执行npm/yarn install 时,假设您有package.json 喜欢:

         "dependencies": {
            "A": "1.0.0"
            "B": "1.0.0"
          }
        
        1. A@1.0.0, B@1.0.0 将被安装,

        因为 B 声明它需要A@0.0.1,

        1. A@0.0.1 也将被安装,但在 node_modules/B 下。

        因此,如果你使用的依赖写得很好,你应该不需要手动处理这类问题。

        有关此行为的更多信息,请访问here。

        【讨论】:

          【解决方案4】:

          在尝试为 webpack 4 安装 style-loader 时遇到了这个问题。

          如何检测包 B 的哪个版本与 "A":"1.0.0" 兼容?

          尝试使用npm install style-loader 安装它告诉我

          npm 错误!无法解决依赖关系:
          npm 错误!对等 webpack@"^5.0.0" 来自 style-loader@3.3.1

          尝试降低版本号直到安装成功:

          npm install style-loader@\<3.3.0

          npm 错误!无法解决依赖关系:
          npm 错误!对等 webpack@"^5.0.0" 来自 style-loader@3.2.1
          npm 错误!节点模块/样式加载器
          npm 错误! style-loader@"

          npm install style-loader@\<3.2.0 等,直到模块安装完毕。

          package.json 表示已安装 2.0.0 版本。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2021-03-24
            • 2023-01-14
            • 1970-01-01
            • 2017-09-13
            • 1970-01-01
            • 2019-12-25
            • 2019-11-03
            相关资源
            最近更新 更多