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

Vite集成aws-sdk构建后报错:Uncaught TypeError: Cannot read properties of undefined (reading 'prototype')

解决AWS$6.STS.prototype未定义的TypeError报错

问题分析

这个报错说明代码中尝试访问AWS$6.STS.prototype时,STS对象未被正确加载。虽然S3上传功能正常,说明AWS SDK的核心S3模块已正常初始化,但STS(安全令牌服务)模块可能因打包优化、隐式依赖未声明或版本兼容问题未被正确引入。

解决步骤

  • 显式引入STS模块
    如果使用AWS SDK v2,在代码入口或涉及STS逻辑的文件中显式导入STS:

    import { STS } from 'aws-sdk';
    // CommonJS环境
    const { STS } = require('aws-sdk');
    

    这样打包工具会保留STS模块,避免被tree shaking误删。

  • 适配AWS SDK v3的模块化引入
    若使用SDK v3,需单独安装@aws-sdk/client-sts包,再按模块化方式导入:

    import { STSClient } from '@aws-sdk/client-sts';
    // 初始化客户端
    const stsClient = new STSClient({ region: '你的区域' });
    

    注意不要混用v2和v3的导入方式,否则会导致模块加载异常。

  • 调整打包工具配置
    检查Webpack、Vite等打包工具的优化规则,若开启了过度tree shaking,可能会误删未被直接引用的STS模块。以Vite为例,可在配置中把AWS SDK相关模块排除在tree shaking优化外:

    // vite.config.js
    export default {
      build: {
        rollupOptions: {
          treeshake: {
            exclude: ['aws-sdk', '@aws-sdk/client-sts']
          }
        }
      }
    }
    
  • 排查第三方依赖
    如果报错是由第三方库触发的,查看该库的文档,确认其对AWS SDK的版本要求,是否需要显式引入STS模块,或存在版本兼容问题,必要时升级或替换依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 07:30:53