JavaScript import vs require

Valentine Kagwiria 2023年10月12日
  1. JavaScript 中的 require()
  2. JavaScript 中的 import()
  3. JavaScript 中 requireimport 之間的主要區別
JavaScript import vs require

本文介紹了 JavaScript 語句 require()import() 之間的主要區別。它還提供了上下文,並詳細說明了每種上下文可與 ES6 和 CommonJS 一起使用的地方。

JavaScript 中的 require()

這是一個內建的 node.js 語句,最常用於包含來自其他單獨檔案的模組。它通過讀取 JS 檔案,執行該檔案並返回要匯出的物件來工作。它以合併核心節點模組,基於社群的甚至本地模組的能力而非常受歡迎。

我們可以使用 require() 在 JavaScript 中包含一個內建模組。

const express = require('express');

包含本地模組也很容易。

require('local_module');

如上所示,node.js 將嘗試在指定的路徑中找到 local_module.js。輸出將根據找到的節點進行延遲:如果檔案存在於指定的路徑中,則輸出將顯示模組的內容。如果不是這樣,你可能會收到以下錯誤。

Error: Cannot find module 'local_module'
at Function.Module._resolveFilename(module.js: 470: 15)
at Function.Module._load(module.js: 418: 25)
at Module.require(module.js: 498: 17)
at require(internal / module.js: 20: 19)
at repl: 1: 1
at ContextifyScript.Script.runInThisContext(vm.js: 23: 33)
at REPLServer.defaultEval(repl.js: 336: 29)
at bound(domain.js: 280: 14)
at REPLServer.runBound[as eval](domain.js: 293: 12)
at REPLServer.onLine(repl.js: 533: 10)

JavaScript 中的 import()

import() 是一個 ES6 模組。與 export() 一起,它們通常被稱為 ES6 匯入和匯出。從本質上講,這意味著該語句不能與 ES 模組之外的其他檔案型別一起使用。

import() 語句使使用者可以匯入他的模組並在程式中使用它們。語法為:

import './this-module.js';

使用者指定要匯入的模組的檔案路徑。

JavaScript 中 requireimport 之間的主要區別

require() 是使用 CommonJS 的 node.js 語句,而 import() 僅與 ES6 一起使用。

require() 保留在檔案中的位置(非詞法),而 import() 始終移至頂部。

可以在程式的任何位置呼叫 require(),但是只能在檔案的開頭執行 import()

大多數人直接使用 require() 語句執行程式碼,但是更喜歡在使用 import() 時使用實驗性模組功能標誌。

最後,所有使用 require() 語句的檔案都儲存為 .js 檔案,而帶有 import() 的檔案只能另存為 .mjs 檔案。

它們不能同時在一個程式中使用。

一般來說,import() 更受歡迎,因為它允許使用者僅選擇和載入他們需要的模組部分。該語句的效能也比 require() 好,並節省了一些記憶體。