vue使用aws-sdk上传,npm后,编译会很大,造成页面卡顿怎么优化呢?-灵析社区

Fronttend

import AWS from 'aws-sdk'; const s3 = new AWS.S3({ endpoint: 'http://' + endpoint, accessKeyId: accessKeyId, secretAccessKey: secretAccessKey, s3ForcePathStyle: true, signatureVersion: 'v4' }); s3.getSignedUrl('getObject', params, (err, url) => { let parts = url.match('(http://.*)(/iaas-image/.*)'); let address; address = window.location.protocol + '//' + window.location.host + parts[2]; if (err) { console.error('无法生成镜像文件:', err); } else { // 使用生成的URL下载图片 window.open(address); } }); }) 我是正常的使用下载,但是编译出来会有1.7M,不使用时只有170kb import AWS from 'aws-sdk'; 引入后👇 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/e5fbdc76066618d22be333cebec6f273.png) //import AWS from 'aws-sdk'; 注掉后👇 ![image.png](https://wmprod.oss-cn-shanghai.aliyuncs.com/images/20250103/27852e14b921ebb42230e0b5b200603f.png) 咨询下大佬,这个该怎么去优化呢,我应该怎么处理呢?拜谢!

阅读量:11

点赞量:0

问AI
1、可以使用v3版本,可以只引入你真正需要的 AWS 服务模块,而不是整个 SDK 安装:npm install @aws-sdk/client-s3 @aws-sdk/s3-request-presigner @aws-sdk/util-create-request @aws-sdk/credential-provider-node // v3 中的导入方式 import { S3, GetObjectCommand } from "@aws-sdk/client-s3"; import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; // 创建 S3 客户端实例 const s3 = new S3({ endpoint: 'http://' + endpoint, credentials: { accessKeyId: accessKeyId, secretAccessKey: secretAccessKey, }, forcePathStyle: true, signatureVersion: 'v4' }); // 获取预签名 URL async function fetchSignedUrl() { try { const command = new GetObjectCommand(params); const signedUrl = await getSignedUrl(s3, command); let parts = signedUrl.match('(http://.*)(/iaas-image/.*)'); let address; address = window.location.protocol + '//' + window.location.host + parts[2]; // 使用生成的URL下载图片 window.open(address); } catch (err) { console.error('无法生成镜像文件:', err); } } fetchSignedUrl(); 2、使用vue异步组件功能引入组件,只在需要时才被加载,对于一个使用 aws-sdk 的组件: const AwsComponent = () => import('./AwsComponent.vue');