📌
【Next.js】< Module not found: Can't resolve 'fs' >
以下、元の記事です。
次のエラーに対して、再現する状況と解決方法について示します。
特にバレルエクスポート - 参考1, 参考2 - している場合に発生しやすいかと思います。
状況
- Next.js: 13.5.6
-
Client Component
にモジュールをインポートしている。 - そのモジュールは、
index.ts
ファイルからエクスポートしている。
// ButtonTest.tsx
'use client' <=== Client Component Only!!!!
import { testHello } from '@/lib/testHello' <=== OK (/lib/testHello.ts)
import * as TEST from '@/lib' <=== NG (/lib/index.ts)
import {testHello} from '@/lib' <=== NG (/lib/index.ts)
import {testHello} from '@/lib/index' <=== NG (/lib/index.ts)
import {testHello} from '@/lib/libs' <=== OK (/lib/libs.ts)
import * as TEST from '@/lib/index.lib' <=== OK (/lib/index.lib.ts)
export const ButtonTest = () => {
return (
<div>
<button
onClick={() => {
testHello()
}}
>
ButtonTest
</button>
</div>
)
}
解決方法
エクスポートするファイル名をindex.ts
以外にしてください。それ以外であれば、index.lib.ts
や lib.ts
など、なんでも良いです。
補記
index.js
のパターンは試していないのですが、多分だめでしょう。
クライアントサイドにはindex
ファイルによるインポートを解決する仕組みがないのでしょうか?
ここで示した解決方法以外があれば教えてほしいです。
Discussion