我应该 select 构建图书馆? ES5 或 ES6

Which I should select for Building library ? ES5 or ES6

我想用 JS (vanilla) 构建一个简单的库。我有点困惑是遵循基于 class 的范式还是基于原型的范式。 ES6 现在已成为主流,尽管正在使用 ES5。 我应该考虑哪些事情

您可以使用 ES6 并将带有 babel 的代码转译为 ES5 以实现向后兼容性。

查看此样板文件以获取示例代码。

npm-module-boilerplate

最好的方法是使用最新的 ES6+ 功能编写源代码。现在,您的 javascript 库可能会被三种不同类型的客户端使用:

  1. 浏览器
  2. NodeJS
  3. 另一个图书馆

1.浏览器 - 对于浏览器,最好的选择是将源代码转译为 ES5,然后以 IIFE 形式构建。

2。 NodeJS - 最好的选择是将其转换为 es5 并以 CommonJS(CJS) 格式构建。

3。另一个库 - 最好的选择是将源代码转换为 es5 但仍保留 es5 模块 (export/import)。您可以将构建导出为 esm 模块。这有助于捆绑工具在将您的库用作依赖项时更好地摇树。

最常用的js打包库:Rollup、Webpack、Parcel都支持。您可以查看它们以获取更多信息。 编码愉快 =)