以前は、babelが行を追加していましたmodule.exports = exports["default"]
。これはもう行われません。これが意味することは、私ができる前のことです。
var foo = require('./foo');
// use foo
今私はこれをしなければなりません:
var foo = require('./foo').default;
// use foo
大したことではありません(そして、これはそれがずっとあったはずのことだと私は推測しています)。問題は、以前は機能していた方法に依存するコードがたくさんあることです(ほとんどのコードをES6インポートに変換できますが、すべてをインポートできるわけではありません)。私のプロジェクトを通過してこれを修正する必要なしに、古い方法を動作させる方法に関するヒントを誰かに教えてもらえますか?
ありがとう!
例:
入力:
const foo = {}
export default foo
Babel 5での出力
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var foo = {};
exports["default"] = foo;
module.exports = exports["default"];
Babel 6(およびes2015プラグイン)での出力:
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var foo = {};
exports["default"] = foo;
出力の唯一の違いがであることに注意してくださいmodule.exports = exports["default"]
。
編集する
私の特定の問題を解決した後に私が書いたこのブログ投稿に興味があるかもしれません:ES6モジュールの誤解、Babel、涙、およびソリューションのアップグレード
if (false) { require('./foo') }
WebPACKを含む実際にスキップうとfoo.js
結果のバンドルにします。
false
トグルになりますか?それがあなたのwebpack設定で利用可能な条件である場合、別のオプションがあるかもしれません。
export default {foo, bar}
とmodule.exports = {foo, bar}
。現在サポートされていない間違ったメソッドがとても気に入りました。
require
Babelを使用するコードベースで作業している場合に必要なケースは何ですか?おそらく、とにかくそれを回避できる他のアプローチがあります。