問題タブ [babel-node]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
499 参照

javascript - ワーカーが参照するファイルをbabel-nodeでcommonjsに変換するにはどうすればよいですか? (バベルのように)

Express.js アプリでは、Babel を使用して、起動する前に commonjs にプリコンパイルしています。コンパイル手順は次のようになります。

プロジェクトの一部として、my-worker.js私が使用する場所と呼ばれるファイルがありますimport syntax:

そして、それはによって使用されother-file.jsます:

これはうまくいきます。Babel はすべてのファイルを commonjs に変換し、ワーカー スクリプトの読み込みが機能します。

しかし

を使用する@babel/nodeと、これは機能しません:

警告が表示されます:

(ノード:4865) 警告: ES モジュールをロードするには、package.json で "type": "module" を設定するか、.mjs 拡張子を使用します。

エラーとともに:

モジュール外で import ステートメントを使用することはできません

"type": "module"ファイル拡張子を明示的に指定する必要があるため、使用したくありません。また、import X, { y } from ...構文がサポートされているかどうかもわかりません (これは気に入っています)。

ワーカー ファイルを に変更し、それに応じてステートメントを変更すると、ファイル名が に戻されるため、本番ビルドでは機能しmy-worker.mjsません。new Worker@babel/node.js

ワーカーによってロードされたファイルをロードしてキャッシュするにはどうすればよい@babel/nodeですか (これが必要なことだと思いますか?)。なぜこれは で機能し、 では機能し@babelないの@babel/nodeですか?


私の.babelrcファイルは次のようになります。