[解決済み】Babel 6がデフォルトのエクスポート方法を変更しました。
2022-04-11 19:50:14
質問
以前は、バベルは以下の行を追加していました。
module.exports = exports["default"]
. このようなことはしなくなりました。これが意味するところは、以前は
var foo = require('./foo');
// use foo
今度はこれをやらなければならない。
var foo = require('./foo').default;
// use foo
大したことではありません(最初からこうあるべきだったのでしょう)。 問題は、以前の動作方法に依存していたコードがたくさんあることです(そのほとんどをES6インポートに変換することはできますが、すべてではありません)。私のプロジェクトを調べてこれを修正することなく、古い方法を動作させる方法についてのヒントをどなたか教えてください(あるいは、これを行うためのcodemodの書き方についての説明もあると、かなりスマートです)。
ありがとうございます。
例
入力します。
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のアップグレード、涙、そして解決策
解決するには?
を使用することもできます。
このプラグイン
を使用すると、古い
export
の動作を元に戻すことができます。
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン