「参照エラー要求が定義されていません」エラーを解決する方法?

Can Zhaoera Yao Qiuga Ding Yisareteimasen Erawo Jie Juesuru Fang Fa



Node.js はそれ自体では何も存在せず、その存在はモジュールと各モジュールが提供するメソッドに依存します。これらのモジュールを使用するには、開発者はまずモジュールをインストールし、次に現在作業中のファイル内にインポートする必要があります。モジュールをインポートするには、開発者が現在使用している、またはアプリケーション所有者が構築したい JavaScript のバージョンに具体的にリンクする 2 つの方法があります。インポート中に複数のエラーが発生する可能性がありますが、最も一般的なエラーは「 必要とする() 」の方法が記載され解決されています。

このガイドでは、「ReferenceError: require is not generated」エラーを解決する手順について説明します。

「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の「エラー」