zoukankan      html  css  js  c++  java
  • npm 依赖包 的管理【即 node_modules目录的设计原理】

    参考: https://www.cnblogs.com/wonyun/p/9349691.html

    npm 安装同一个包的多个版本【 用npm alias来实现】https://blog.csdn.net/wozhenhaokan/article/details/105504721  或  https://www.cnblogs.com/amiezhang/p/13166240.html

    说明:如果一个包从头用到尾,我们一般不会再去引入这个包的另外版本。但是有的项目会碰到 必须 要另外弄个版本的包,或者复制这个版本的包的情况。

    比如1: npm里面的一个包A,项目都快开发好了,突然新需求加入进来。需要用到 包 A新版的功能【新版 和 旧版存在兼容性问题】。这时就需要两个版本的包 A 同时存在 node_modules 里。【这种情况出现的情况比较少

    比如2:npm的 包 B 里面引入了包 A【B 对 A 进行了封装,项目中用 包 B】。快开发好,突然有个功能用 包 B 实现不了【包B 封装的 功能不上很彻底】,只能用 A。这时项目中 的 包 B 引用了 A,项目文件中 也引用 A。

         导致 打包后运行报错【开发模式没有问题,具体原因不清楚。可能是打包编译时,包 B 对A的 引用 已经 编译了;所以项目中对 A 的引用,就不在编译。而两种 编译 的 使用模式 不一致导致的】。

    实践经历:  在开发 "市民卡会务客户端"  electron 桌面软件 时,引用 tim-js-sdk 包就碰到这个问题。

         视频会议 功能  使用 trtc-electron-education 包【对 tim-js-sdk、trtc-electron-sdk 两个包进行了封装。但是这个包没有把 直播功能封装进去】 实现;直播 功能使用  tim-js-sdk、trtc-electron-sdk 实现。

         结果 因为 trtc-electron-education 引用了 tim-js-sdk,外面项目也引用了 tim-js-sdk。开发时没有问题,打包后运行就报错【但是 trtc-electron-sdk 这个包确没有报错,具体里面的 原因应该和 包的设计有关吧】。

         最后 利用 npm alias 实现了,同一个包,以两种 npm 包名共存 在一个 node_modules 中。解决了这个问题。

  • 相关阅读:
    HDU 6182 A Math Problem 水题
    HDU 6186 CS Course 位运算 思维
    HDU 6188 Duizi and Shunzi 贪心 思维
    HDU 2824 The Euler function 欧拉函数
    HDU 3037 Saving Beans 多重集合的结合 lucas定理
    HDU 3923 Invoker Polya定理
    FZU 2282 Wand 组合数学 错排公式
    HDU 1452 Happy 2004 数论
    HDU 5778 abs 数论
    欧拉回路【判断连通+度数为偶】
  • 原文地址:https://www.cnblogs.com/wfblog/p/13972289.html
Copyright © 2011-2022 走看看