0

モジュール it self 内で、キーワードを使用し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();
}
4

1 に答える 1

1

はい、exportsそのような使用は有効な es6 ではなく、babel がコードを commonjs にトランスパイルするためにのみ機能していると言うのは正しいでしょう。

Webpack 1 はツリー シェーキングをサポートしていないため、問題は発生しません。transform-es2015-modules-commonjsWebpack 2 を無効にして使用し、ツリー シェーキングに影響するかどうかを確認するのは興味深いことです。

于 2016-10-23T23:06:55.580 に答える