PJCHENder 未整理筆記

[Node] Modules, Exports, and Require

2017-09-26

[Node] Modules, Exports, and Require

ESModules

在 NodeJS 13 之後支援 ESModules 的寫法,但使用前需要進行前置作業,有兩種不同方式,選擇其中一種就可以:

  1. .js 的檔案改成 .mjs
  2. package.json 中加入 {"type": "module"},這時候全部的檔案都會套用 ESModules,如果原本的檔案需要使用 Common JS 的話,則可以把原本的 .js 檔案改成 .cjs

CommonJS

沒有匯出的函式無法使用

1
2
3
4
5
6
// greet.js

function greet () {
console.log('Hello')
}
greet()

執行 app.js 時會出現 ‘Hello’,但是在 app.js 中並沒有辦法呼叫到 greet() 這個函式

1
2
3
4
// app.js
require('./greet')

greet() // ReferenceError: greet is not defined

匯出與匯入函式

1
2
3
4
5
6
7
8
// greet.js

function greet () {
console.log('Hello')
}
greet()

module.exports = greet
1
2
3
4
// app.js
const greet = require('./greet')

greet() // 可以使用

掃描二維條碼,分享此文章