是否可以将exports关键字与commonjs一起使用 - webpack 1

时间:2016-10-23 22:53:20

标签: ecmascript-6 webpack babeljs commonjs es6-modules

是否可以使用exports关键字来访问模块内的导出值? (它是es6模块规范的一部分吗?) 它似乎与webpack和babel / commonjs模块一起正常工作,exports关键字包含对所有导出方法的引用。

但我担心的是,这可能无效,也许这只是可能的,因为它是一个babel / commonjs环境。

此外,我不确定这会如何影响树抖动,因为现在无法确定实际使用哪些导出,因为bindMethods方法可以动态访问此模块中的所有方法,而无需声明显式名称。

示例:

import bindMethods from 'module';
var binder = bindMethods(exports);

export function foo(value){
  binder(value).bar();
}

export function bar(value){
  binder(value).foo();
}

1 个答案:

答案 0 :(得分:1)

是的,你说使用exports是正确的,因为这不是有效的es6,只是因为babel将你的代码转换成commonjs而正常工作。

Webpack 1不支持树摇动,所以它不会导致任何问题。如果您禁用transform-es2015-modules-commonjs并使用Webpack 2来查看它是否会影响树震动,那将会很有趣 - 我非常怀疑它会不会发生。