You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React项目引入AWS JS SDK后编译失败问题求助

React安装AWS SDK v3后编译失败的解决方法

问题重现

执行yarn add @aws-sdk/client-secrets-manager安装AWS Secrets Manager客户端后,启动React应用出现编译错误:

Failed to Compile 

./node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js 10:17
Module parse failed: Unexpected token (10:17)
File was processed with these loaders:
 * ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
|     const {
|       rateLimiter
>     } = options ?? {};
|     this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();
|     this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider);

错误根源是AWS SDK v3依赖的@smithy库使用了ES2020的空值合并运算符(??),而默认情况下React的Babel配置不会编译node_modules目录下的代码,导致无法解析该语法。

解决方案

方案1:让Babel编译AWS相关依赖

修改项目根目录的babel.config.js(若使用.babelrc则修改对应文件),添加对AWS SDK及@smithy库的编译规则:

module.exports = {
  presets: ['react-app'],
  overrides: [
    {
      test: /\.js$/,
      include: [
        /node_modules\/@aws-sdk/,
        /node_modules\/@smithy/
      ],
      plugins: [
        '@babel/plugin-proposal-nullish-coalescing-operator',
        '@babel/plugin-proposal-optional-chaining'
      ]
    }
  ]
};

如果尚未安装上述Babel插件,先执行安装命令:

yarn add @babel/plugin-proposal-nullish-coalescing-operator @babel/plugin-proposal-optional-chaining --dev

方案2:升级React Scripts版本

若你的项目使用旧版react-scripts,升级到最新版本可默认支持ES2020+语法:

yarn upgrade react-scripts --latest

注意:升级前建议备份项目代码,避免版本兼容问题。

方案3:使用UMD版本的AWS SDK

无需修改配置,直接通过CDN引入UMD构建版本到public/index.html:

<script src="https://sdk.amazonaws.com/js/aws-sdk-3.x.min.js"></script>

之后在代码中通过全局AWS对象调用客户端:

const { SecretsManagerClient, GetSecretValueCommand } = AWS.SecretsManager;

内容的提问来源于stack exchange,提问作者Drew Gallagher

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 11:47:03