前言
當初在學習 ES6 Modules 相關語法時,主要得依靠 Babel 編譯才能在 Node.js 中運行,原因為 Node.js 預設是使用 CommonJS 模組規範,事實上,大可不必這麼麻煩,Node.js 原生是支援 ES6 Modules 模組規範的,不過得透過一些方法才能將其切換,且不同版本還有各自的切換方法。本篇將使用 nvm (Node Version Manager) 切換不同的 Node.js 版本,並介紹在不同版本下該如何啟用對 ECMAScript 模塊的支持。
筆記重點
- Node.js v12 版本切換方式
- Node.js v13 版本切換方式
Node.js v12 版本切換方式
輸入 nvm use 12.16.0
切換成指定 Node.js 版本:
1 | $ nvm use 12.16.0 |
參考 官方文檔 啟用方式:
- 使用
--experimental-modules
標誌,啟用對 ECMAScript 模塊的支持。
啟用後,以下操作將視為 ECMAScript 模塊:
- 帶有
.mjs
結尾的文件。 package.json
文件包含"type": "module"
屬性。
範例 (1):
1 | /* --- main.mjs --- */ |
輸入以下指令:
1 | $ node --experimental-modules main.mjs |
範例 (2):
1 | /* --- main.js --- */ |
1 | /* --- package.json --- */ |
輸入以下指令:
1 | $ node --experimental-modules main.js |
Node.js v13 版本切換方式
輸入 nvm use 13.7.0
切換成指定 Node.js 版本:
參考 官方文檔 啟用方式:
v13 版本不須傳遞任何標誌,本身已支持 ECMAScript。
以下操作將視為 ECMAScript 模塊:
- 帶有
.mjs
結尾的文件。 package.json
文件包含"type": "module"
屬性。
範例 (1):
1 | /* --- main.mjs --- */ |
輸入以下指令:
1 | $ node main.mjs |
範例 (2):
1 | /* --- main.js --- */ |
1 | /* --- package.json --- */ |
輸入以下指令:
1 | $ node main.js |