npm依赖管理java_npm 依赖包 的管理【即 node_modules目录的设计原理】

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

比如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 中。解决了这个问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值