予期しないトークン エクスポート: ES6 モジュール サポートの採用
ES6 コードを実行しようとしているときに「予期しないトークン エクスポート」エラーが発生すると、混乱する可能性があります問題。このエラーは、使用している EcmaScript モジュール (ESM) 構文がランタイム環境でサポートされていない場合に発生します。
ESM について:
ESM (通常は「」と呼ばれます) ES6 モジュール」では、JavaScript のモジュール システムが導入され、コードのカプセル化と依存関係の管理が容易になりました。これは、export キーワードを利用してモジュールを定義し、コード構成をより明示的にします。
ESM のサポート:
v14.13.0 より前の NodeJS バージョンは ESM をサポートしておらず、代わりに ESM に依存していました。 CommonJS モジュールでは、 module.exports プロパティ構文を使用しました。ただし、新しい NodeJS バージョン (v14.13.0 以降) は、明示的に有効になっている場合に限り、ESM をサポートします。
解決策:
NodeJS で ESM を有効にする (v14) .13.0 ):
プロジェクトの package.json ファイルを編集し、「type」プロパティを「module」に設定します:
{ ... "type": "module", ... }
CommonJS モジュール構文を使用したリファクタリング:
古い NodeJS バージョンの場合は、CommonJS モジュール構文を使用するようにコードをリファクタリングします:
// Example ES6 module export class MyClass { constructor() { console.log("es6"); } } // CommonJS module equivalent module.exports = class MyClass { constructor() { console.log("commonJs"); } };
TypeScript と ts-node を利用する:
TypeScript を ts-node または ts-node-dev npm パッケージと一緒に使用することを検討してください。 TypeScript はコンパイル時に JavaScript にトランスパイルし、ES6 コードを古い NodeJS バージョンと互換性を持たせます。
ESM を CommonJS にトランスパイル:
esbuild (npm 経由でインストール) を使用して、 ES6 JavaScript を CommonJS 形式に変換し、ネイティブ ESM サポートのない環境でも実行できるようにします。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3