- 新しい順
- 投票が多い順
- コメントが多い順
ご質問いただきました事象は、以下の Issue に該当している可能性があると存じます。
type checking error with fromEnv in @aws-sdk/credential-providers #3392
https://github.com/aws/aws-sdk-js-v3/issues/3392
お使いのビルドツールにより、下記の index.ts
ではなく index.web.ts
が使用され、fromContainerMetadata
が export
されていないものと存じます。
- https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-providers/src/index.ts
- https://github.com/aws/aws-sdk-js-v3/blob/main/packages/credential-providers/src/index.web.ts
以下の package.json
に記載がございます通り、ビルドのエントリーポイントが browser
の場合に index.web
が使用されます。
一例といたしまして、esbuild
を使用してビルドを実行する場合、デフォルトでは browser
向けのビルドが実行されます。
https://esbuild.github.io/api/#platform
By default, esbuild's bundler is configured to generate code intended for the browser.
それにより、以下の通り、fromContainerMetadata
が export
されないことを示すエラーが発生いたします。
browser の場合
$ npx esbuild index.js --bundle --outfile=out.js
✘ [ERROR] No matching export in "node_modules/@aws-sdk/credential-providers/dist-es/index.web.js" for import "fromContainerMetadata"
index.js:2:9:
2 │ import { fromContainerMetadata } from '@aws-sdk/credential-providers';
╵ ~~~~~~~~~~~~~~~~~~~~~
1 error
一方、ビルド時に Node.js
をターゲットに設定し、ビルドのエントリーポイントを main,module
に変更いたしますとエラーは回避できます。
https://esbuild.github.io/api/#platform
When the platform is set to node:
...
The main fields setting is set to main,module.
browser 以外の場合
$ npx esbuild index.js --platform=node --bundle --outfile=out.js
out.js 976.9kb
⚡ Done in 196ms
お手数をお掛けいたしますが、お使いのビルドツールの設定にて browser
向けのビルドではなく main
のエントリーポイントが使用されるようにご変更いただき、事象が解消するかご確認いただけますでしょうか。
なお、ビルドツールの設定方法につきましては、該当のツールのウェブサイトなどで情報をご確認いただけますようお願い申し上げます。
関連するコンテンツ
- AWS公式更新しました 2年前
- AWS公式更新しました 2年前