vite-plugin-tcos
v1.0.0
Published
A Vite plugin for integrating with COS (Cloud Object Storage).
Maintainers
Readme
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 | 是否在上传出错时忽略错误并继续构建。 |
