vite-plugin-cos

一个用于 Vite 的插件,可将构建后的静态资源自动上传到腾讯云对象存储(COS)。
功能
- 构建完成后自动上传资源到腾讯云 COS。
- 支持通过
include 和 exclude 正则表达式过滤文件。
- 支持
gzip 压缩,并自动设置 Content-Encoding。
- 支持上传失败自动重试。
- 支持检查远端文件是否存在,避免重复上传。
- 支持上传后删除本地文件。
安装
npm install vite-plugin-tcos --save-dev
使用
在 vite.config.ts 中引入并使用插件:
import { defineConfig } from 'vite';
import { ViteCOS } from 'vite-plugin-tcos';
export default defineConfig({
plugins: [
ViteCOS({
cosOptions: {
SecretId: 'your-secret-id',
SecretKey: 'your-secret-key',
Bucket: 'your-bucket-appid',
Region: 'your-region',
},
project: 'my-project/v1',
cosBaseDir: 'vite-assets',
exclude: /\.html$/,
enableLog: true,
gzip: true,
removeMode: false,
}),
],
});
注意: 为了安全起见,强烈建议通过环境变量(例如 process.env.COS_SECRET_ID)来传递 SecretId 和 SecretKey,而不是直接硬编码在配置文件中。
配置选项
cosOptions | object | 是 | - | 腾讯云 COS 的配置,与 cos-nodejs-sdk-v5 的构造函数参数一致。 |
cosOptions.SecretId | string | 是 | - | 腾讯云 API 密钥 ID。 |
cosOptions.SecretKey | string | 是 | - | 腾讯云 API 密钥 Key。 |
cosOptions.Bucket | string | 是 | - | COS 存储桶名称,格式为 BucketName-APPID。 |
cosOptions.Region | string | 是 | - | COS 存储桶所在地域。 |
project | string | 是 | - | 项目标识,会作为上传路径的一部分。 |
cosBaseDir | string | 否 | 'vite-assets' | 在 COS 上的基础目录,最终上传路径为 cosBaseDir/project。 |
include | RegExp | 否 | undefined | 包含文件的正则表达式,默认为全部文件。 |
exclude | RegExp | 否 | undefined | 排除文件的正则表达式,默认不排除任何文件。 |
retry | number | 否 | 3 | 上传失败时的重试次数。 |
existCheck | boolean | 否 | true | 上传前是否检查远端文件是否存在,若存在则跳过。 |
gzip | boolean | 否 | false | 是否对文件进行 Gzip 压缩,并添加 Content-Encoding: gzip 头部。 |
removeMode | boolean | 否 | false | 上传成功后是否删除本地的对应文件。 |
enableLog | boolean | 否 | false | 是否在控制台打印详细日志。 |
ignoreError | boolean | 否 | false | 是否在上传出错时忽略错误并继续构建。 |