0

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

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

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

例子:

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

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

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

1 回答 1

1

是的,你说使用exports这样的方法是正确的 es6 是无效的,并且只是因为 babel 将你的代码转换为 commonjs 才有效。

Webpack 1 不支持摇树,所以它不应该在那里引起任何问题。如果你禁用transform-es2015-modules-commonjs并使用 Webpack 2 来查看它是否会影响摇树,看看会发生什么会很有趣——不过我非常怀疑它会不会。

于 2016-10-23T23:06:55.580 回答