我一直想用BabelJS来完成这个任务,但是我不确定Babel或规范目前是否支持它。
给定Outer.js
:
export default function() { }
下面的示例不起作用。
export Outer from './Outer'
使用 CommonJS 模块,这可以轻松地编写为:
exports.x = require('./x');
我一直想用BabelJS来完成这个任务,但是我不确定Babel或规范目前是否支持它。
给定Outer.js
:
export default function() { }
export Outer from './Outer'
使用 CommonJS 模块,这可以轻松地编写为:
exports.x = require('./x');
截至2015年4月3日,BabelJS团队已于3天前发布了v5.0
,其中包括他们在博客文章中所述的该简写的支持。
Lee Byron's stage 1 additional export-from statements proposal completes the symmetry between import and export statement, allowing you to easily export namespaces and defaults from external modules without modifying the local scope.
Exporting a default
export foo from "bar";
equivalent to:
import _foo from "bar"; export { _foo as foo };
旧答案:
这个导出符号表示
export v from "mod";
ES6不支持此功能(可以查看规范中的支持示例),但是它可以在ES7中得到支持(请参阅此提案)。
为了获得完全相同的结果,现在必须使用import
:
import Outer from './Outer';
export {Outer};
6to5
),是否可以假定它们的 “实验性”选项支持这个提案?因为我正在使用 BabelJS(和 webpack)转译我的代码,并将 “实验性”选项设置为“true”,但似乎并没有起作用。 - srphexperimental
标志。我不知道Babel团队是否计划在不久的将来实现这个提案。但毕竟,该提案仅处于第一阶段。当它进入第二阶段时,Babel实现它将更有意义。 - alexpodsTypeScript 1.5还支持ES 2015附加的export-from语句语法:
export { default as Injector } from './lib/Injector';
这将生成以下ES5代码:
var Injector_1 = require('./lib/Injector');
exports.Injector = Injector_1.default;
export * from './Outer';
- Rico Sta. CruzOuter.js
可能包含的附加信息(module.exports
或export default
)来澄清了一些事情。 - srph