首頁 >web前端 >js教程 >為什麼我在 Node.js 中收到'SyntaxError: Unexpected token import”?

為什麼我在 Node.js 中收到'SyntaxError: Unexpected token import”?

Linda Hamilton
Linda Hamilton原創
2024-12-19 04:41:53528瀏覽

Why Am I Getting a

Node.js:了解意外的令牌導入錯誤

在Node.js 中,通常會遇到錯誤「SyntaxError: Unexpected token import」表示您正在嘗試在不支援的環境中使用匯入語法。

導入語法是 ES6 (ECMAScript 2015) 的功能,可讓您匯入模組。不過,在 Node.js 中,隨著不同版本的發布,已經逐漸引入了對 ES6 模組導入的支援。

Node.js 版本中對ES6 模組的支援

  • 節點13 : 透過import 導入模組是穩定且完全支援的。您可以使用 .mjs 檔案或在 package.json 檔案中設定 "type": "module"。
  • Node 12: 與 Node 13 類似,您可以使用 .mjs 檔案匯入模組或在 package.json 中使用 "type": "module"。但是,您需要使用 --experimental-modules 標誌來執行 Node。
  • Node 9: 在 Node 9 中,模組導入仍處於實驗階段,需要使用 .mjs 檔案和--experimental-modules 標誌。

在 Node 13 之前,ES6 模組導入是不支援

在 Node.js 13 之前的版本中,導入語法本身不受支援。因此,如果您在早期版本中遇到此錯誤,那是因為您嘗試使用執行時間環境不支援的 JavaScript 建構。

回退到經典Require 語句

要解決此問題,您需要恢復使用經典的require 語句來在不支援導入的Node.js 版本中導入模組。例如:

const express = require("express");

使用Babel 實作ES6/7 功能

如果你想在Node.js 中使用ES6/7 功能,你可以編譯你的程式碼使用巴別塔。 Babel 是一個 JavaScript 轉譯器,可將較新的 JavaScript 語法轉換為與舊環境相容的程式碼。這是使用 Babel 編譯伺服器的範例:

npm install --save-dev babel-cli babel-preset-env
npx babel-node script.js

以上是為什麼我在 Node.js 中收到'SyntaxError: Unexpected token import”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn