」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何解決 ES6 模組中的「意外令牌匯出」錯誤?

如何解決 ES6 模組中的「意外令牌匯出」錯誤?

發佈於2024-11-06
瀏覽:340

How to Resolve \

意外的令牌導出:擁抱ES6 模組支援

嘗試執行ES6 程式碼時遇到「意外的代幣匯出」錯誤可能會令人困惑問題。當執行時間環境缺乏對您正在使用的 EcmaScript 模組 (ESM) 語法的支援時,就會發生此錯誤。

了解 ESM:

ESM,通常稱為「ES6 Modules」引入了 JavaScript 的模組系統,支援程式碼封裝和更輕鬆的依賴管理。它利用export關鍵字來定義模組,使程式碼組織更加明確。

ESM的支援:

v14.13.0以下的NodeJS版本不支援ESM,而是依賴在 CommonJS 模組上,它使用 module.exports 屬性語法。但是,較新的 NodeJS 版本(v14.13.0 及更高版本)支援 ESM,前提是明確啟用它。

解決方案:

在NodeJS 中啟用ESM(v14 .13.0 ):

編輯專案的package.json檔案並將“type”屬性設為“module”:

{
  ...
  "type": "module",
  ...
}

使用CommonJS 模組語法重構:

對於較舊的NodeJS 版本,重構程式碼以使用CommonJS 模組語法:

// Example ES6 module
export class MyClass {
  constructor() {
    console.log("es6");
  }
}

// CommonJS module equivalent
module.exports = class MyClass {
  constructor() {
    console.log("commonJs");
  }
};

利用 TypeScript 和 ts-node:

考慮將 TypeScript 與 ts-node 或 ts-node-dev npm 套件一起使用。 TypeScript 在編譯時轉換為 JavaScript,使 ES6 程式碼與較舊的 NodeJS 版本相容。

將ESM 轉換為CommonJS:

使用esbuild(透過npm 安裝)來轉換你的程式碼ES6 JavaScript 轉CommonJS 格式,允許其在沒有本機ESM 支援的環境中運作。

版本聲明 本文轉載於:1729172539如有侵犯,請洽[email protected]刪除
最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3