【发布时间】:2015-09-16 23:49:34
【问题描述】:
我正在开发两个使用 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 类,它本身将导入 A es6 类而不是 es5 A)或 es5 源(通过需要 es5 函数 B 本身需要 es5 函数A):实现它的最佳方法是什么?
【问题讨论】:
-
你到底有什么不清楚的地方? B 的导入语句应该是什么样子的?
-
不。我希望 es6 B 导入 es6 A,并将 es5 B 转译为需要转译的 es5 A。我正在寻求有关如何构建和发布我的代码的一般建议。我找到了一个我将分享的解决方案:在 Babel 中使用
resolveModuleSource选项。但我想知道其他人是怎么做的。 -
正如@Bergi 所建议的,rollup 是非常合适的解决方案
标签: javascript node.js ecmascript-6 babeljs