打包和发布npm模块最简单的方法是什么



我一直在研究这个话题,我读到的很多东西都与babel、webpack、rollup甚至browserfy重叠。轻松发布用es6编写的源代码的标准方法(或最常见的方法(是什么?这些源代码可以在带有script标记的浏览器中使用,也可以在带有require的节点中使用?同样令人困惑的是,实际需要多少版本?我读到有三种——umd、cjs和原始源代码,但umd不是已经涵盖了cjs吗?然后我还看到有一个es版本(文件夹(,我认为它与源文件相同,为什么需要它?

如果您正在编写一个假定在浏览器中运行的库&在Node中,您有几个选项:

  1. 通过汇总将其绑定到UMD(它创建的绑定比Webpack更小,特别推荐用于绑定库(。这个解决方案对你来说是最简单的。它的缺点是,如果你的lib允许部分导入(比如lodash只允许导入一个函数(,那么你的消费者将无法做到这一点,他们将获得你的整个捆绑包
  2. 在package.json中将main字段指向cjs入口文件时,将编译后的文件发布为esm+cjs;esm条目的module字段,这就是为什么您的库消费者能够选择性地导入库的部分。该选项的好处是,您的消费者将能够对您的代码应用多种优化,例如树抖动、模块连接等

最新更新