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

Vite+Vue3部署AWS后出现memoizedProperty未定义错误求助

解决Vite+Vue3部署后Uncaught TypeError: Cannot read properties of undefined (reading 'memoizedProperty')问题

这个错误本质是AWS SDK v2与Vite底层的Rollup打包工具兼容不佳导致的,试试下面几个方案:

方案1:升级到AWS SDK v3(强烈推荐)

AWS SDK v3是官方主推的模块化版本,天生支持ES模块,完全适配Vite的打包逻辑,从根源上解决这类兼容问题:

  • 卸载旧版SDK:npm uninstall aws-sdk
  • 按需安装v3的具体模块,比如使用S3服务就安装:npm install @aws-sdk/client-s3 @aws-sdk/lib-storage
  • 替换代码中的导入逻辑,比如原来的const AWS = require('aws-sdk')改成:
    import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3"
    

方案2:调整Vite配置兼容SDK v2

如果暂时不想升级,修改vite.config.js的配置,强制Vite正确处理SDK:

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import { fileURLToPath, URL } from 'node:url'

export default defineConfig({
  plugins: [vue()],
  resolve: {
    alias: {
      '@': fileURLToPath(new URL('./src', import.meta.url)),
      path: 'path-browserify',
      'aws-sdk': 'aws-sdk/dist/aws-sdk.min.js', // 启用别名,指向浏览器兼容版
      './runtimeConfig': './runtimeConfig.browser',
    },
  },
  optimizeDeps: {
    include: ['aws-sdk'], // 强制预构建SDK,避免打包时的模块解析问题
  },
  build: {
    commonjsOptions: {
      include: [/aws-sdk/, /node_modules/], // 确保SDK被当作CommonJS模块处理
    },
  },
})

同时检查代码中是否有动态导入SDK的逻辑,确保浏览器环境下加载的是正确版本。

方案3:直接用CDN引入SDK(临时 workaround)

如果上面的方法都不生效,可以绕过打包环节,直接在index.html中引入CDN版本的SDK:

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

之后代码里直接使用全局的AWS对象即可,无需在项目中安装SDK包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 12:35:18