[node.js] Uncaught SyntaxError: The requested module ‘/src/types.ts’ does not provide an export named

錯誤訊息:

App.tsx:34 Uncaught SyntaxError: The requested module '/src/types.ts' does not provide an export named 'Suggestion' (at App.tsx:34:10)

chrome browser console:

gemini 的回覆:

從你提供的 types.ts 內容來看,Suggestion 確實已經加上了 export 關鍵字。之所以瀏覽器仍然報錯 SyntaxError,通常是因為 Vite 的編譯快取(Cache)還停留在舊的版本,或者是 data.ts 的導入路徑與實際檔案不符。

請嘗試以下三個快速修復方案:

1. 強制清除 Vite 快取並重啟

Vite 會將編譯過的模組暫存在 node_modules/.vite 中,有時候檔案內容變更了,快取卻沒有更新。請在終端機執行:

PowerShell

# 先按 Ctrl + C 停止執行,然後輸入
npm run dev -- --force

--force 參數會強制 Vite 忽略舊快取,重新掃描所有檔案的匯出與導入關係。

2. 檢查 data.ts 的導入語法

請打開 src/data.ts,檢查第二行的導入語法。確保它是使用大括號,且路徑完全正確:

TypeScript

// 確保寫法如下(注意大括號)
import { Suggestion } from './types'; 

// 或者更保險的寫法(明確標示為型別導入)
import type { Suggestion } from './types';

如果你的 data.ts 是寫成 import Suggestion from './types'(沒有大括號),這代表你在尋找「預設匯出」(Default Export),而你的 types.ts 使用的是「具名匯出」(Named Export),這會導致找不到對象。

3. 檢查檔案副檔名與大小寫

在 Windows 上開發時,檔案名稱 types.tsTypes.ts 是相同的,但 Vite 的開發伺服器有時會因為路徑大小寫不一致而產生模組解析錯誤。

  • 檢查 src 目錄下的檔案名稱是否確實為小寫的 types.ts
  • 檢查 data.ts 裡的 from "./types" 是否與檔名完全一致。

下一步驗證

如果上述方法都無效,請在瀏覽器 F12 的 Network (網路) 頁籤中:

  1. 重新整理網頁。
  2. 找到 types.ts 檔案並點擊。
  3. 查看 Response (回應) 內容,確認瀏覽器收到的版本是否真的包含 export interface Suggestion

實際去操作, 還是無法解決, 改問 claude:

The Suggestion interface is properly exported from types.ts. This is likely a browser/Vite module cache issue. Try a hard refresh or restart the dev server.

If that doesn’t resolve it, check for errors in the file:

Checked types.tsApp.tsx, no problems found

Both files are error-free. The Suggestion interface is exported from types.ts:2 (export interface Suggestion), and App.tsx:34 imports it correctly.

This is a stale Vite/browser module cache issue. To fix it:

Stop the dev server

Delete the .vite cache folder:

Remove-Item -Recurse -Force node_modules/.vite

Restart the dev server (npm run dev)

If that still doesn’t help, a full hard reload in the browser (Ctrl+Shift+R) should clear it.

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *