ホームページ > ウェブフロントエンド > jsチュートリアル > Node.js で「構文エラー: モジュール外の import ステートメントを使用できません」が発生するのはなぜですか?

Node.js で「構文エラー: モジュール外の import ステートメントを使用できません」が発生するのはなぜですか?

DDD
リリース: 2024-12-05 03:30:13
オリジナル
455 人が閲覧しました

Why Am I Getting a

「SyntaxError: Cannot use import state into a module」の説明と解決済み

Node.js プロジェクトで、エラー「SyntaxError: Cannot use 「モジュール外で import ステートメントを使用する」は、インポート ステートメントが ES モジュールとして認識されないファイルで使用されていることを示します。この問題は、Babel または Node.js の新しいバージョンにアップグレードするときによく発生します。

問題について

Babel 7 では、デフォルトの動作は、 CommonJS モジュールとしての .js 拡張子。一方、ES モジュールの場合は、最も近い package.json ファイルで「type」フィールドを「module」に設定するか、拡張子 .mjs を使用して明示的に命名する必要があります。

エラーの解決

このエラーを解決するには 2 つのオプションがあります:

オプション 1: 設定するpackage.json の「type」を「module」にします

次の「type」フィールドを package.json ファイルに追加します。

// package.json
{
  "type": "module"
}
ログイン後にコピー

これにより、すべての .js が解釈され、 .mjs ファイルは ES モジュールとして使用されますが、個々のファイルは .cjs を使用することで CommonJS として解釈できます。 extension.

オプション 2: .mjs 拡張子を明示的に使用します

ES モジュールとして扱われるファイルに .mjs 拡張子を付けて明示的に名前を付けます。 .js 拡張子を持つ他のすべてのファイルは、デフォルトで CommonJS として解釈されます。

追加の考慮事項

  • 最新バージョンの Node.js がインストールされていることを確認してください。 (13.2.0 が推奨されます)。
  • 以前に Babel 6 を使用していた場合は、これが必要ですさらなるエラーを避けるためにプリセットを更新してください。
  • 互換性を維持するには、プロジェクト全体で ES モジュールまたは CommonJS モジュールを一貫して使用することが重要です。

以上がNode.js で「構文エラー: モジュール外の import ステートメントを使用できません」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート