如果npm安装的两个插件依赖同一个库,暴露给用户安装,但是版本不一样,要如何解决?

问题描述

假设我要安装A和B两个插件,A和B都依赖同一个C库,都需要用户自己去安装,但是各自依赖的C的大版本不一样,遇到这种问题,应该如何解决?

你期待的结果是什么?实际看到的错误信息又是什么?

我期待能够同时使用两个版本的C。但实际,后安装的C版本会覆盖先安装的C版本。

已解决 悬赏分:20 - 解决时间 2022-01-04 21:32
反对 0举报 0 收藏 0

回答2

最佳
  • @

    npm 6.9 以后可以使用别名安装同一个包的不同版本。

    比方说这样:

    npm install demo2@npm:demo@2.0
    npm install demo1@npm:demo@1.0

    这样 package.json 里就会多出来:

    "dependencies": {
      "demo2": "npm:@demo@2.0",
      "demo1": "npm:@demo@1.0"
    }

    然后写 require 或 import 的时候就要变成 require('demo2') 这样。

    因为你这个 A 跟 B 都是 npm 安装的,那么你就需要去 node_modules 目录底下改它们的源码了。

    支持 0 反对 0 举报
    2022-01-04 07:52
  • @

    1、升级npm到7,npm install -g npm@7

    2、检查packag-lock.json的依赖

    {
      "node_modules/A/node_modules/C": {
        "version": "7.2.0",
      },
      "node_modules/B/node_modules/C": {
        "version": "8.10.0",
      }
    }

    如果安装后的包描述文件如上,则OK了

    支持 0 反对 0 举报
    2022-01-04 08:40