@icanvas/webpack
Version:
这是icanvas的默认webpack打包配置
38 lines (36 loc) • 1.37 kB
JavaScript
const path = require('path');
const { CleanWebpackPlugin } = require('clean-webpack-plugin');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const QiniuPlugin = require('../utils/qiniu.js');
const BasePath = process.cwd();
module.exports = (ENV, Config, RemoteResourceMap) => {
let ResourceDir = path.resolve(BasePath, '..', ENV.target, 'resource');
let plugins = [];
//清理文件夹
plugins[0] = new CleanWebpackPlugin({
dangerouslyAllowCleanPatternsOutsideProject: true,
cleanOnceBeforeBuildPatterns: [path.join(BasePath, '..', 'cache', '**', '*'), path.join('**', '*')],
verbose: false,
dry: false,
});
plugins[1] = new CopyWebpackPlugin([{ from: path.resolve(BasePath, 'resource', 'local'), to: path.resolve(ResourceDir, 'local') }]);
//拷贝资源
if (!ENV.qiniu) {
plugins[2] = new CopyWebpackPlugin([{ from: path.resolve(BasePath, 'resource', 'remote'), to: path.resolve(ResourceDir, 'remote') }]);
} else {
if (ENV.upload) {
if (!Config.Qiniu) {
console.log('缺少七牛配置Qiniu:{Path,Url,Key,Secret,Bucket}');
return process.exit(0);
}
plugins[2] = new QiniuPlugin(
path.resolve(BasePath, 'resource', 'remote'),
`${Config.Qiniu.Path}/${Config.EnglishName}/${ENV.qiniu}`,
RemoteResourceMap,
Config.core == 'wxgame' ? 'zip' : 'dir',
Config.Qiniu,
);
}
}
return { plugins };
};