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

时间:2018-10-28 04:02:44

标签: reactjs npm webpack ecmascript-6 babel

我一直在研究这个主题,我读到的许多东西与babel,webpack,汇总甚至浏览器重叠。 轻松发布用es6编写的源代码的标准方法(或最常见的方法)是什么,可在带有script标签的浏览器和有require的节点中使用它们? 同样令人困惑的是,实际上需要多少个版本?我读到有三个-umd,cjs和原始来源,但是umd是否已经涵盖cjs?然后我还看到有一个es版本(文件夹),我认为它与源代码相同,为什么需要这样做?

1 个答案:

答案 0 :(得分:0)

如果要编写一个可以在浏览器和Node中运行的库,则有几种选择:

  1. 使用汇总将其捆绑到UMD(它会创建比Webpack小的捆绑,特别推荐用于捆绑库)。 此解决方案是最简单的解决方案。缺点是,如果您的lib允许部分导入(例如lodash仅允许导入一个函数),那么您的使用者将无法做到这一点,他们将获得您的整个捆绑包。
  2. 在package.json中,将main字段指向cjs条目文件并将module字段指向esm条目时,将编译的文件发布为esm + cjs。您的库消费者可以选择导入您的库的一部分。 该选项的好处是您的使用者将能够对您的代码进行多种优化,例如tree shaking,模块concat等...