首頁 > web前端 > js教程 > NodeJS模組【簡單說明】

NodeJS模組【簡單說明】

Susan Sarandon
發布: 2024-11-25 08:09:14
原創
501 人瀏覽過

NodeJS Modules [Simple Explanation]

什麼是模組?

假設您的 NodeJS 專案中有一個 index.js 文件,您在其中使用了五個函數。但是,其中兩個函數也可能在其他文件中使用。因此,您在專案中建立了三個文件,而不是一個文件:

  • index.js
  • dependency1.js
  • dependency2.js

這裡,每個Javascript檔案都是一個模組,導出類別/函數和導入它們的方式基本上是模組系統。模組系統允許我們拆分和包含程式碼,並在需要時導入我們或其他開發人員編寫的程式碼。

這些模組不僅僅是專案中存在的 Javascript 檔案;它們也可以是您在專案中作為依賴項安裝的任何外部套件。另外,NodeJS 有一些內建模組,如 http、fs 等,這些模組可以隨安裝一起使用,並且可以在不添加任何外部依賴的情況下導入。

如何匯出或導入模組?

Node.js 中使用了兩個模組系統。

  1. CommonJS (CJS)
  2. ECMAScript 模組 (ESM)

您已經閱讀了我之前博客中的廚房-廚師-服務員示例;同樣,如果我們將模組與此進行比較,想像CommonJS 是一本古老的大食譜書,我們需要搜索和查找食譜,而ESM是一個新的老式數位應用程式來查看食譜。

CommonJS (CJS)

  • 舊的模組系統。
  • 模組以簡單的格式編寫,例如:
// Export
module.exports = function SayHello() {
  console.log("Hello World!");
};

// Import
const GetHello = require("./hello-script.js");
SayHello(); // "Hello World!"
登入後複製
登入後複製
  • 同步:依序載入模組。
  • 僅在 Node.js 中工作(不能直接在瀏覽器中工作)。

ECMAScript 模組 (ESM)

  • 現代模組系統。
  • 模組現在更結構化:
// Export
export function SayHello() {
  console.log("Hello World!");
}

// Import
import { SayHello } from "./hello-script.js";
SayHello();
登入後複製
登入後複製
  • 非同步:同時載入多個模組。
  • 在瀏覽器和 Node.js 中原生工作。

語法上的主要差異:
CJS: module.exports / require
ESM:匯出/匯入

如何在我的專案中設定 CJS 或 ESM?

  • 開啟專案的package.json。
  • 新增:
{
  type: "module";
}
登入後複製
登入後複製
  • 這告訴 NodeJS 將 .js 解釋為 ESM。如果我們不添加這個,NodeJS 將預設將其解釋為 CommonJS。

Typescript 中的模組:

有時,您可以使用 ECMAScript 模組,但您匯入的舊套件是用 CommonJS 編寫的。為了處理這些情況,我們有時會確保從 Typescript 檔案產生的輸出 Javascript 程式碼採用通用格式,即使我們已經以 ESM 格式編寫了 Typescript 檔案。

為此,我們在專案的 tsconfig.json 中加入編譯器選項:

// Export
module.exports = function SayHello() {
  console.log("Hello World!");
};

// Import
const GetHello = require("./hello-script.js");
SayHello(); // "Hello World!"
登入後複製
登入後複製

然後會發生什麼:
module: "commonjs":使用 CommonJS 模組系統輸出 JavaScript,系統使用 require 和 module.exports。
target: "es6":確保輸出 JavaScript 使用 ES6 語法和 let、const 和箭頭函數等功能。

輸入打字稿代碼:

// Export
export function SayHello() {
  console.log("Hello World!");
}

// Import
import { SayHello } from "./hello-script.js";
SayHello();
登入後複製
登入後複製

輸出Javascript程式碼:

{
  type: "module";
}
登入後複製
登入後複製

以上是NodeJS模組【簡單說明】的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板