IronPDF for Node.js中的verbatimModuleSyntax錯誤

This article was translated from English: Does it need improvement?
Translated
View the article in English

當您在TypeScript專案中使用IronPDF for Node.js時,verbatimModuleSyntax編譯器選項控制importexport語句的產生方式,而當它與您的模組系統衝突時可能會導致構建錯誤。

選項的行為方式

設置為false(常見選擇): TypeScript重寫import和export語句以符合目標模組系統。 針對CommonJS目標,它會將ESM風格的import轉換為(import ... from '...') into require()調用; 若為ESNext目標,則保留ESM語法。

設置為true TypeScript會完全保留原寫的import和export語法。 ESM語法無論目標為何都保持ESM,這在模組系統不支持時會失效。

啟用後的錯誤

使用"verbatimModuleSyntax": true時,CommonJS構建可能會失敗並出現以下情況:

A top-level 'export' modifier cannot be used on value declarations in a CommonJS module when 'verbatimModuleSyntax' is enabled.
ESM syntax is not allowed in a CommonJS module when 'verbatimModuleSyntax' is enabled.

第一個發生是因為CommonJS不支持頂層export; 第二個發生是當ESM語法未轉換並用於CommonJS模組時。

建議

對於大多數專案,保持選項禁用,以便TypeScript為您調整模組語法:

{
  "compilerOptions": {
    "verbatimModuleSyntax": false
  }
}

如果您需要為特定打包器或環境嚴格保留語法,僅在模組系統完全支持您的源程式碼語法時,設置為true

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備好開始了嗎?
版本: 2026.6 剛剛發布
Still Scrolling Icon

還在滾動嗎?

想要快速的證據嗎?
運行範例觀看您的HTML變為PDF。