如何在 Node.js 中啟用 import 語法?

現在許多教學文章都使用 import XXX from 'XXX'ES 模組)語法,而非 const XXX = require('XXX')CommonJS)語法。

如果你直接在你的 Node.js 應用程式中使用這種語法,會出現錯誤訊息如下:

unexpected identifier error

unexpected identifier..

有一種解決方法是使用 Babel。如果你已經為你的專案設定了 Babel,這個問題應該已經可以解決了。

不過現在你不再需要使用 Babel,因為 Node 已經支援實驗性的 ES 模組,但是由於它是實驗性的,你必須進行三個步驟才能啟用它。

首先,安裝最新版本的 Node.js。它包含了最新且最好的功能。

其次,在你的 package.json 檔案中加入 "type": "module" 這一行。

第三,在執行 nodejs 時使用 --experimental-modules 參數:

node --experimental-modules app.js

這樣你就應該可以正常運行了!

另外一種方法是不在 package.json 檔案中加入 "type": "module" 這一行,而是將你的 app.js(或其他檔案)重新命名為 app.mjs

需要注意的是,現在 require() 語法將無法使用。

對於可能不支援這個參數的舊版 Node.js,我建議試試看 esm npm 模組