如何在 Node.js 中啟用 ES 模組
如何在 Node.js 中啟用 import
語法?
現在許多教學文章都使用 import XXX from 'XXX'
(ES 模組)語法,而非 const XXX = require('XXX')
(CommonJS)語法。
如果你直接在你的 Node.js 應用程式中使用這種語法,會出現錯誤訊息如下:
unexpected identifier..
有一種解決方法是使用 Babel。如果你已經為你的專案設定了 Babel,這個問題應該已經可以解決了。
不過現在你不再需要使用 Babel,因為 Node 已經支援實驗性的 ES 模組,但是由於它是實驗性的,你必須進行三個步驟才能啟用它。
首先,安裝最新版本的 Node.js。它包含了最新且最好的功能。
其次,在你的 package.json
檔案中加入 "type": "module"
這一行。
第三,在執行 nodejs
時使用 --experimental-modules
參數:
1 | node --experimental-modules app.js |
這樣你就應該可以正常運行了!
另外一種方法是不在 package.json
檔案中加入 "type": "module"
這一行,而是將你的 app.js
(或其他檔案)重新命名為 app.mjs
。
需要注意的是,現在 require()
語法將無法使用。
對於可能不支援這個參數的舊版 Node.js,我建議試試看 esm
npm 模組。