JavaScript/Node.js の「require が定義されていません」エラーを解決する方法

Javascript Node Js No Require Ga Ding Yisareteimasen Erawo Jie Juesuru Fang Fa



プログラミングの過程で、構文エラーや実行時エラーなどのさまざまなエラーが発生することがあります。参照エラーは実行時エラーです。初期化されていない変数、または現在のスコープに存在しない変数を参照した場合、参照エラーが発生します。 「requireが定義されていません」エラーは、キーワード「require」に問題があることを示す参照エラーです。

この記事では、このエラーが発生する理由とその修正方法について詳しく説明します。

JavaScript/Node.js の「require が定義されていません」エラーを解決するにはどうすればよいですか?

「require が見つかりません」という参照エラーは、Node.js 環境ではなく Web ブラウザーで実行されるはずの JavaScript ファイル内に require() 関数が見つかった場合に発生します。







require() 関数とは何ですか?

require() 関数はグローバル スコープを持ち、Node.js によって提供されます。 Node.js アプリケーションにモジュールをロードして実行します。多くのブラウザは Node.js をサポートしていないため、require() 機能は使用できません。



このエラーはいつ発生しますか?

このエラーは通常、JavaScript が Node.js とともに両方のブラウザーで使用されている場合に発生します。エラーは次の 3 つの方法で発生する可能性があります。



  • ブラウザ環境でrequire()関数を使用した場合。
  • Node.js および package.json ファイルで require() 関数が使用される場合、タイプは「module」に設定されます。
  • Node.js で require() 関数が使用される場合、ファイルの拡張子は .mjs になります。

const という構文を使用する myFile = require(‘./my-file’) 」を Web ベースの環境で実行すると、次のようなエラーがスローされます。





このエラーを解決するためのさまざまな解決策について説明します。



ケース1:ブラウザ環境のエラー

require() 関数は特に Node.js で機能します。ほとんどのブラウザは Node.js と互換性があるため、require() 機能をサポートしません。 ES6 モジュールのインポート エクスポート モジュールは、「ReferenceError require is not generated」エラーを解決します。これを行う方法を示すコードの例を次に示します。

DOCTYPE html >

< >





< スクリプトの種類 = 「モジュール」 送信元 = 「インデックス.js」 > 脚本 >

< スクリプトの種類 = 「モジュール」 送信元 = 「ファイル.js」 > 脚本 >

>

html >

Index.js は最初に読み込まれ、その機能を file.js で利用できるようになります。

Index.js ファイル

Index.js は、関数積と変数 x および y を定義します。

エクスポート機能製品 ( a、b ) {

戻る ある * b ;

}

輸出 定数 = 10 ;

輸出 定数 そして = 「テイラー」

ファイル.js

Index.js ファイルの機能は、file.js という名前の他の js ファイルで使用できます。 File.js は次のようになります。

輸入 { 製品、x、y } から 「./index.js」 ;

コンソール。 ログ ( 製品 ( 10 5 ) ) ; // 50を表示します

コンソール。 ログ ( バツ ) ; // 10を表示します

コンソール。 ログ ( そして ) ; // 「TAYLOR」と表示されます

出力

次の出力は、ES6 インポート エクスポート モジュールを使用して、ブラウザ環境での「require が定義されていません」エラーを削除する方法を示しています。

ケース 2: Node.js での作業中のエラー

package.json ファイルで、値 module を使用して type プロパティを設定すると、このエラーが発生します。また、拡張子が .mjs のファイルで require() 関数が使用されている場合にも発生する可能性があります。

このエラーは、モジュールに設定されている type プロパティを削除すると削除でき、拡張子が .mjs のファイルはすべて .js に名前変更されます。

//パッケージ.json

{

// require() を使用するためにモジュールに設定されている type プロパティを削除します

'タイプ' : 「モジュール」

}

Index.js ファイル

Index.js ファイルは、関数「product」と、変数スコープを持つ変数 x および y を定義します。 Index.js ファイルは次のようになります。

機能製品 ( a、b ) {

戻る ある * b ;

}

グローバル。 バツ = 13 ;

グローバル。 そして = '迅速' ;

モジュール。 輸出 = {

製品、

} ;

ファイル.js

require() キーワードを使用して、JS ファイルindex.js から関数積を取得します。 file.js ファイルは次のようになります。

定数 { 製品 } = 必要とする ( 「./index.js」 ) ;

コンソール。 ログ ( 製品 ( 10 9 ) ) ; // 90が表示されます

コンソール。 ログ ( バツ ) ; // 13 が表示されます

コンソール。 ログ ( そして ) ; // 「swift」と表示されます

出力

出力には、package.json ファイルから module に設定されたタイプのプロパティを削除することで、「Require is not found」エラーを解決する方法が表示されます。

覚えておくべきこと

  • モジュールをインポートするための ES6 モジュール構文では、モジュール ファイルの拡張子を明確にする必要があります。 JavaScript が適切に処理するには、ファイルの種類を認識する必要があります。
  • ES6 モジュールは require() 関数と同時に使用できません。

結論

ブラウザで ES6 モジュール構文を使用すると、「要件が定義されていない」という問題が解決されます。そうでない場合は、コード スニペットを Node.js で実行する必要があります。このエラーは、ブラウザで require() 関数が使用されるときに発生します。この記事では、「要件が定義されていない」問題を解決する方法を例を挙げて説明しました。