使用npm释放es6和es5源
我正在开发两个使用npm注册的节点包,并使用es6语法。 每个包只有一个es6模块导出一个类。
- 包
A
没有依赖关系 - 包
B
取决于A
A类
export default class A {...}
B类
import A from 'A' export default class B {...}
每个包都有以下结构modules/ index.js (es6 source) index.js (commonjs source)
- 源代码在
es6/index.js
- 它使用Babel转译成es5 / commonjs
题
我想给我的A和B包的用户select使用es6(通过导入B类本身会导入一个es6类而不是es5 A)或es5源(通过要求es5函数B本身需要es5函数A):什么是实现它的最好方法?
我会做的是有两个单独的版本(两个单独的github项目)
- 一个es5作为最低要求(es5 A和es5 B作为编译代码)。
- 另一个有es6作为最低要求(与模块es6 A和es6B)。
这样做的理由是,目前最好避免将尚未过渡到es6文件的人员与es6文件混淆。 未来一两年内,es5版本就不再需要了。 您希望能够在不显着改变文件组织的情况下停止对es5版本的支持。
在es6版本中,考虑命名您的文件index.es6.js。 这将有助于防止在不支持的环境中意外引用es6代码。