このガイドでは、「ReferenceError: require is not generated」エラーを解決する手順について説明します。
- 「ReferenceError: require が定義されていません」エラーを解決するにはどうすればよいですか?
- 理由 1: アプリケーションのタイプがモジュールに設定されている
- 解決策: 「Type」キーを削除します。
- 理由 2: 「.mjs」で作業する 」 ファイル
- 解決策: ファイル拡張子を「.cjs」に変換します。
- 代替アプローチ: ES6 ステートメント「インポート/エクスポート」を使用する
「ReferenceError: require が定義されていません」エラーを解決するにはどうすればよいですか?
プロジェクトに外部モジュールまたは組み込みモジュールをインポートするには、2 つのアプローチが使用されます。 必要とする() 「方法」または「 輸入 」というキーワード。言及された「 参照エラー: require が定義されていません ユーザーが「」を使用しようとすると、「」という問題に直面します。 必要とする() 「」内の「メソッド」 ESモジュール 」の範囲です。前述のエラーは、以下のコードが実行されると、node.js のコンソールに次のように表示されます。
「Resolve “ReferenceError: require is not generated”」エラーが発生する理由と、それに対応する解決策については、以下のセクションで説明します。
理由 1: アプリケーションのタイプがモジュールに設定されている
アプリケーションで前述のエラーが表示される場合、最も簡単で長期にわたる解決策は、「 パッケージ.json ' ファイル。 「」を持つキーと値のペアを検索します。 鍵 ' の ' タイプ ” と割り当てられた値” モジュール ”。これにより、アプリケーション全体の環境がモジュール化され、古い「 CommonJS 」モジュールとメソッド。このキーと値のペアは次のように視覚的に表現されます。
'タイプ' : 「モジュール」 、
解決策: 「Type」キーを削除します。
解決策は「」を削除することです。 タイプ 「node.js プロジェクトからのキーと割り当てられた値」 パッケージ.json ' ファイル。 「package.json」ファイルからの削除により、ES6 モジュールのスコープが利用され、「require() メソッドが動作可能になります。」これで、同じコードを再度実行してもエラーは発生しなくなりました。
理由 2: 「.mjs」で作業する 」 ファイル
” .mjs 」は、モジュール JavaScript のソース コード ファイルです。 「」ではないモジュール環境内のコードが含まれています。 CommonJS 」を使用すると、コードが複数のファイルに分割され、管理しやすくなります。 ” 必要とする() ”メソッドは”の下にあります。 CommonJS ”。そのため、「require」メソッドは「」内で使用すると未定義になります。 .mjs ” ファイル拡張子が付いているため、前述のエラーが発生します。
解決策: ファイル拡張子を「.cjs」に変換します。
モジュール式 JavaScript ソース コードと同様に、ファイル拡張子は「 .mjs ' 利用可能です。 「」の延長 .cjs 「」は「」に提供されます。 CommonJS 」モジュールとプロパティ。このファイルは「」を受け入れません モジュラー 「」のようなパッケージ 輸入 ” ですが、ES5 バージョンでは問題なく動作します。私たちの場合、ファイル拡張子を変更することで、「」に関連する問題が解決されます。 必要とする() ' 方法:
代替アプローチ: ES6 ステートメント「インポート/エクスポート」を使用する
” 必要とする() ” メソッドは、” によって定義および提供されます。 CommonJ ” であり、JavaScript バージョンの ES5(ECMAScript 5) まで許容されます。これは 2009 年に公開されましたが、多くの最新モジュールがサポートしていないか、ES5 では適切に動作しないため、現在は廃止されています。まさに「」 必要とする() 「この方法は現在、より最適化された簡単な方法に置き換えられています」 輸入 」発言。どちらのエンティティの動作も同じですが、最新のテクノロジーとそれによって提供される容易さにより、「インポート」の方が優れています。
デフォルトまたは外部モジュールの場合
以下のデモでは、デフォルトまたはサードパーティのモジュールをインポートするために、「require()」メソッドの代わりに「import」ステートメントが使用されています。
輸入 読み取りラインオブジェクト から '読み込まれた行' ;コンソール。 ログ ( 読み取りラインオブジェクト ) ;
上記のコードをコンパイルした後、同じタスクを「」によって実行する必要があります。 必要とする() ”メソッドが実行され、” 参照エラー: require が定義されていません 」も同様に表示されません。
カスタムビルドモジュールの場合
” 輸入 ” ステートメントは、同じまたは異なるディレクトリにある他のファイルからカスタム ビルド モジュールまたは関数を「インポート」するためにも使用されます。他のファイルの関数または変数は、「 輸出 」というキーワード。たとえば、単一の関数と確率変数が別のファイルからインポートされる以下のコード スニペットにアクセスしてください。
アプリ.js
定数 エクスポート変数 = 「このガイドは Linuxhint によって提供されています!」 ;定数 エクスポート関数 = ( ) => {
コンソール。 ログ ( エクスポート変数 ) ;
} ;
輸出 デフォルト エクスポート関数 ;
輸出 {
エクスポート変数
} ;
上記のコードブロックの説明は次のとおりです。
- まず、「」という名前の確率変数 エクスポート変数 ” が定義されており、アロー関数 “ エクスポート関数() 」が作成され、作成された「exportVariable」がコンソールに表示されます。
- のキーワードは、 エクスポートのデフォルト ' そして ' 輸出 」を輸出するために利用されます。 エクスポート関数() ' そして ' エクスポート変数 」エンティティをファイルから抽出します。
- このファイルをインポートすると、エクスポートされた関数と変数がそこで使用できるようになります。
インデックス.js
「index.js」は、エクスポートされた関数と変数がインポートされて使用される二次ファイルであり、以下のコードが含まれています。
輸入 エクスポート関数、 { エクスポート変数 } から 「./app.js」 ;エクスポート関数 ( ) ;
コンソール。 ログ ( エクスポート変数 ) ;
上記のコードでは、「 輸入 ” ステートメントはデフォルトの” をインポートするために使用されます。 エクスポート関数() ” と変数” エクスポート変数 ' から ' アプリ.js ' ファイル。
次に、インポートされた両方のエンティティが呼び出され、検証のためにコンソールに表示されます。
ここで、メインの「」を実行します。 インデックス.js 以下のコマンドを使用してファイルを作成します。
ノードインデックス。 js生成された出力は、インポートされた要素が「 参照エラー: require が定義されていません ' エラー:
指定されたエラーを解決する方法はこれですべてです。
結論
「」を解決するには 参照エラー: require が定義されていません ” エラーが発生した場合は、” を削除してください タイプ 「」の値を持つ「キー」 モジュール ' から ' パッケージ.json 」に変更するか、現在作業中のファイル拡張子を「」に変更します。 .cjs ”。 ES6 モジュラー バージョンで作業したい場合は、「 必要とする() ” メソッドを使用します。” 輸入 」発言が迫る。このガイドでは、「」の問題を解決するために考えられる修正について説明しました。 参照エラー: require が定義されていません Node.jsの「エラー」