266 - 《依赖预打包》

发布于 2023年2月23日

我本以为大家都知道这是啥了,看到有人提,就写一篇。但是写完发现他把问题删了,😄。

1、依赖预打包是啥?就是把依赖提前打包好放在你的 npm 包里,然后在 package.json 中删除响应的依赖,然后使用的时候直接引打包后的文件即可。

比如你的 npm 包依赖了 a,而 a 又依赖了 b,那正常结构应该是这样。

node_modules
  a
    node_modules
      b
index.ts
package.json

经过依赖预打包,会变成这样。

compiled
  a.js
index.ts
package.json

2、带来什么好处?1)锁定依赖,对于用户和用户的项目来说会更安全,不会出现三方库升级导致的意外情况发现,我们可以把我更新的主动权,可以定期(Umi 是 4 周 1 次)走完测试流程后再更新,见 28 - 《依赖版本锁不锁》,2)速度更快,因为少了很多 resolve 的机制和文件 IO,理论上会更快,3)让 peerDependences 警告消失,4)复用一个库的多个版本,因为你不能直接在 package.json 中声明相同库的不同版本,比如要同时支持 webpack 4 和 webpack 5,5)忘了,感觉还有的。

3、有什么缺点?1

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。