介绍
我们公司之前的项目一直都是打包之后上传七牛,但是最近一段时间总是出现打包文件找不到的情况,中间过程就省略了,最后决定把项目文件放到腾讯云上。
腾讯云准备工作
- 进入腾讯云控制台。
- 打开对象存储。
- 点击存储桶列表-创建存储桶。
- 在存储桶列表里点击刚创建的桶-点击右侧权限管理-存储桶访问权限-公有读私有写。
如果有CDN加速需求的话。
- 点击右侧域名与传输管理-自定义CDN加速域名-添加域名(这一步看你是想要采用默认CDN加速域名还是自定义的)。
- 如果是自定义加速域名的话除了域名的HTTPS配置,在腾讯云上还要进行配置:
- 控制台-点击内容分发网络-左侧证书管理-配置对应的证书。(我开始不知道要做这一步,文件上传到腾讯云之后一直无法访问,后来提了工单才知道,耽误了几个小时)。
安装
npm i tencent-cloud-webpack-plugin
使用方法
支持的配置项:
secretIdCOS SecretIdsecretKeyCOS SecretKeybucketCOS 存储对象名称,格式为对象名称加应用 ID,如:bucket-1250000000regionCOS 存储地域,参见官方文档path存储路径, 默认为[hash],也可以指定 hash 长度,如:[hash:8]exclude可选,排除特定文件,正则表达式,如:/index\.html$/include可选,指定要上传的文件,正则表达式,如:/app\.js$/batch可选,批量上传文件并发数,默认 20
注: Webpack 的 output.publicPath 要指向 COS(或自定义的)域名地址
// 引入
const CosPlugin = require('cos-webpack')
// 这里用项目名加上时间戳用来在腾讯云中区分标识
const fileName = 'projectName/' + new Date().getTime()
// 配置 Plugin
const cosPlugin = new CosPlugin({
secretId: defaultSettings.tencent.secretId,
secretKey: defaultSettings.tencent.secretKey,
bucket: defaultSettings.tencent.bucket,
region: defaultSettings.tencent.region,
path: fileName
});
// Webpack 的配置
module.exports = {
output: {
publicPath: IS_PROD ? defaultSettings.tencent.publicPath + fileName + '/dist' : '/',
outputDir: 'dist',
assetsDir: 'static',
},
plugins: [
cosPlugin
// ...
]
// ...
}