Closed3

Next.js(App Router)で@aws-sdkを使っていたらビルド時にCannot get final name for export 'NO_RETRY_INCREMENT'のエラーが出る

gontagonta

Next.jsで@aws-sdk/client-s3等を使ってファイルアップロードの機能を実装した後にnext buildをしたらエラーが発生していることに気づいた。

./node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3-express/functions/s3ExpressHttpSigningMiddleware.js + 43 modules
Cannot get final name for export 'NO_RETRY_INCREMENT' of ./node_modules/@smithy/util-retry/dist-es/index.js

私のpackage.jsonで関係しそうライブラリは下記と思われる。

"@aws-sdk/client-s3": "^3.658.1",
"@aws-sdk/s3-request-presigner": "^3.658.1",
"next": "14.2.5",
gontagonta

そもそもserverComponentsExternalPackagesってなんだろう?

下記のドキュメントを見る。

https://ja.next-community-docs.dev/docs/app-router/api-reference/next-config-js/serverComponentsExternalPackages

https://nextjs.org/docs/app/api-reference/next-config-js/serverExternalPackages

Server Components のバンドルから特定の依存関係を除外し、ネイティブな Node.js の require を使用してください。

「ネイティブな Node.js の require を使用してください。」の部分がいまいち分かっていないが、今回でいうとバンドルする時にNode.js側で使う@aws-sdkをbundleするときの依存関係から除外をしているって感じなのかな?

なお、今までserverComponentsExternalPackagesという名前だったものが、v15からはserverExternalPackagesになる様子

Moved from experimental to stable. Renamed from serverComponentsExternalPackages to serverExternalPackages

意訳:v15.0.0 experimental から stable に移動。serverComponentsExternalPackages から serverExternalPackages に名称変更。

https://nextjs.org/docs/app/api-reference/next-config-js/serverExternalPackages

このスクラップは2ヶ月前にクローズされました