@yidun/cdn-upload-webpack-plugin
v1.1.7
Published
A webpack plugin for upload dist to cdn.
Keywords
Readme
cdn-upload-webpack-plugin, 用于将静态资源上传到 cdn
usage
构造函数
/**
* @param {Object} options
* @param {Array|String} dirs 待上传的文件目录
* @param {Boolean} includeRootDir 文件的相对路径计算时包不包含根目录,默认 true
* @param {RegExp|Array<RegExp>} ignores 排除特定文件
* @param {Object} client 上传 client 配置,目前只支持 NosClient,不同的 client 配置参数可能不同,以 nos 举例
* @param {String} accessId
* @param {String} secretKey
* @param {String} bucket 桶名
* @param {String} namespace 不同项目在使用同一个桶时做隔离
* @param {Boolean} incrementalUpload 仅 vite 插件支持。是否开启增量上传(仅对 content-hash 文件生效),默认 false
* @param {Number} precheckParallelCount 仅 vite 插件支持。增量上传预检查并发数,默认与 parallelCount 一致
* @param {Boolean} cleanupAfterUpload 仅 vite 插件支持。上传成功后是否清理本地资源,默认 false
* @param {RegExp|Array<RegExp>} cleanupKeepRules 仅 vite 插件支持。清理后保留规则,默认 [/\.html$/]
*/
new CdnUploadWebpackPlugin(options)以 vue-cli 项目举例
configureWebpack: config => {
if (process.env.NODE_ENV === 'production') {
config.plugins.push(...[
new CdnUploadWebpackPlugin({
dirs: path.resolve(__dirname, './dist'),
ignore: /.html$/,
client: {
bucket: '',
accessId: '',
secretKey: '',
namespace: 'yidunfe/cdntest'
}
})
])
}
},adaptor
目前仅支持 nos 上传,后续如有其他的上传需求,可自行扩展 adaptor,可通过 client 参数区分
vite 额外能力:上传成功后清理本地静态资源
CdnUploadVitePlugin({
dirs: [path.join(__dirname, './dist')],
ignores: [/\.html$/, /\.map$/],
incrementalUpload: true,
precheckParallelCount: 24,
cleanupAfterUpload: true,
cleanupKeepRules: [/index\.html$/],
client: {
bucket: '',
accessId: '',
secretKey: '',
namespace: 'yidunfe/cdntest'
}
})