我在使用 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 就不知道該怎麼辦。