NodeJS プロジェクトに 5 つの関数を使用した Index.js ファイルがあると想像してください。ただし、これらの関数のうち 2 つは他のファイルでも使用される可能性があります。したがって、1 つのファイルではなく、プロジェクト内に 3 つのファイルを作成します。
ここで、これらの Javascript ファイルはそれぞれモジュールであり、クラス/関数のエクスポートとインポートの方法は基本的にモジュール システムです。モジュール システムを使用すると、必要に応じていつでもコードを分割して含めたり、当社または他の開発者が作成したコードをインポートしたりできます。
これらのモジュールは、プロジェクト内に存在する単なる Javascript ファイルではありません。プロジェクトに依存関係としてインストールした外部パッケージを使用することもできます。また、NodeJS には http や fs などの組み込みモジュールがいくつかあり、これらはインストールと同時に使用でき、外部依存関係を追加せずにインポートできます。
Node.js では 2 つのモジュール システムが使用されています。
私の前のブログで、キッチン、シェフ、ウェイターの例を読みました。同様に、これとモジュールを比較する場合、CommonJS はレシピを検索して見つけるために必要な古くて分厚いレシピ本であり、ESM はレシピを見るための新しい古いデジタル アプリであると想像してください。
CommonJS (CJS)
// Export module.exports = function SayHello() { console.log("Hello World!"); }; // Import const GetHello = require("./hello-script.js"); SayHello(); // "Hello World!"
ECMAScript モジュール (ESM)
// Export export function SayHello() { console.log("Hello World!"); } // Import import { SayHello } from "./hello-script.js"; SayHello();
構文の主な違い:
CJS: module.exports / require
ESM: エクスポート/インポート
{ type: "module"; }
場合によっては、ECMAScript モジュールを使用できても、インポートした古いパッケージが CommonJS で記述されていることがあります。これらのケースに対処するために、Typescript ファイルを ESM 形式で記述した場合でも、Typescript ファイルから生成された出力 Javascript コードが共通形式であることを確認することがあります。
このために、プロジェクトの tsconfig.json に COMPilerOptions を追加します。
// Export module.exports = function SayHello() { console.log("Hello World!"); }; // Import const GetHello = require("./hello-script.js"); SayHello(); // "Hello World!"
その後何が起こるか:
module: "commonjs": require と module.exports を使用する CommonJS モジュール システムを使用して JavaScript を出力します。
target: "es6": 出力 JavaScript が ES6 構文と let、const、arrow 関数などの機能を使用していることを確認します。
Typescript コードを入力してください:
// Export export function SayHello() { console.log("Hello World!"); } // Import import { SayHello } from "./hello-script.js"; SayHello();
出力 Javascript コード:
{ type: "module"; }
以上がNodeJSモジュール【簡単解説】の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。