我在使用 Next.js 時遇到了以下問題:

模組找不到:找不到 ‘fs’

在 Next.js 頁面中,您可以從加載 Node.js 模組的文件中導入方法。

這是沒問題的,只要您也在 getStaticProps()使用被導入的方法。

舉個例子,我有以下程式碼:

import { getData } from '../lib/data'

//...

export async function getStaticProps() {
 const data = getData()
 return {
 props: {
 data,
 },
 }
}

當我把 const data = getData() 註解掉後,Next.js 開始報錯「找不到 ‘fs’ 模組」,因為 fs 是我在 lib/data 中首先導入的模組。

這種情況也可能發生在您導入的任何其他 Node 庫上。

原因是在 getStaticProps() 中的任何內容僅在在服務器環境中運行時才被調用,但如果我們不在其中調用 Node.js 函數,Next.js 就不知道該怎麼辦。