const ALIOSS = require('ali-oss') const WebpackAliyunOSS = require("webpack-aliyun-oss") const OSSCFG = require('./aliyun-oss-config') const aliyunOSSClient = new ALIOSS({ region: OSSCFG.region, accessKeyId: OSSCFG.accessKeyId, accessKeySecret: OSSCFG.accessKeySecret, bucket: OSSCFG.bucket }); async function deleteFile(filename) { await aliyunOSSClient.delete(filename) } async function deleteOldFiles() { let result = await aliyunOSSClient.list({ "max-keys": 1000 }) result.objects && result.objects.forEach(obj => { deleteFile(obj.name) }) } deleteOldFiles() new WebpackAliyunOSS({ from: ['./dist/**', '!./dist/**/*.html'], dist: '/', region: OSSCFG.region, deletOrigin: false, accessKeyId: OSSCFG.accessKeyId, accessKeySecret: OSSCFG.accessKeySecret, bucket: OSSCFG.bucket, setOssPath: filePath => { let index = filePath.lastIndexOf('dist') let path = filePath.substring(index + 4, filePath.length) return OSSCFG.path + '/' + path.replace(/\\/g, '/') }, setHeaders(filePath) { // some operations to filePath return { 'Cache-Control': 'max-age=31536000', 'Access-Control-Allow-Origin': '*' } } }).apply()