使用npm释放es6和es5源

时间:2015-06-30 09:02:32

标签: javascript node.js ecmascript-6 babeljs

我正在开发使用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包的用户选择使用es6(通过导入B类本身将导入一个es6类而不是es5A)或es5源(通过要求es5函数B本身需要es5函数) A):实现它的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我要做的是有两个单独的版本(两个独立的github项目)

  1. 最低要求为es5的人(es5 A和es5 B为已编译代码)。
  2. 另一个以es6作为最低要求的人(使用模块es6 A和es6B)。
  3. 原因在于,目前最好避免将尚未过渡到es6的人与es6文件混淆。将来,在一两年内,es5版本将变得不必要。您希望能够在不显着更改文件组织的情况下停止对es5版本的支持。

    在es6版本中,考虑将文件命名为index.es6.js。这将有助于防止在不支持es6代码的环境中意外引用es6代码。