我应该 select 构建图书馆? ES5 或 ES6
Which I should select for Building library ? ES5 or ES6
我想用 JS (vanilla) 构建一个简单的库。我有点困惑是遵循基于 class 的范式还是基于原型的范式。 ES6 现在已成为主流,尽管正在使用 ES5。
我应该考虑哪些事情
您可以使用 ES6 并将带有 babel 的代码转译为 ES5 以实现向后兼容性。
查看此样板文件以获取示例代码。
最好的方法是使用最新的 ES6+ 功能编写源代码。现在,您的 javascript 库可能会被三种不同类型的客户端使用:
- 浏览器
- NodeJS
- 另一个图书馆
1.浏览器 - 对于浏览器,最好的选择是将源代码转译为 ES5,然后以 IIFE 形式构建。
2。 NodeJS - 最好的选择是将其转换为 es5 并以 CommonJS(CJS) 格式构建。
3。另一个库 - 最好的选择是将源代码转换为 es5 但仍保留 es5 模块 (export/import)。您可以将构建导出为 esm 模块。这有助于捆绑工具在将您的库用作依赖项时更好地摇树。
最常用的js打包库:Rollup、Webpack、Parcel都支持。您可以查看它们以获取更多信息。
编码愉快 =)
我想用 JS (vanilla) 构建一个简单的库。我有点困惑是遵循基于 class 的范式还是基于原型的范式。 ES6 现在已成为主流,尽管正在使用 ES5。 我应该考虑哪些事情
您可以使用 ES6 并将带有 babel 的代码转译为 ES5 以实现向后兼容性。
查看此样板文件以获取示例代码。
最好的方法是使用最新的 ES6+ 功能编写源代码。现在,您的 javascript 库可能会被三种不同类型的客户端使用:
- 浏览器
- NodeJS
- 另一个图书馆
1.浏览器 - 对于浏览器,最好的选择是将源代码转译为 ES5,然后以 IIFE 形式构建。
2。 NodeJS - 最好的选择是将其转换为 es5 并以 CommonJS(CJS) 格式构建。
3。另一个库 - 最好的选择是将源代码转换为 es5 但仍保留 es5 模块 (export/import)。您可以将构建导出为 esm 模块。这有助于捆绑工具在将您的库用作依赖项时更好地摇树。
最常用的js打包库:Rollup、Webpack、Parcel都支持。您可以查看它们以获取更多信息。 编码愉快 =)