create-react-app filemanager-webpack-plugin 将dist压缩为dist.zip包
// config-overrides.js
// filemanager-webpack-plugin 2.0.5
const path = require('path');
const { override, addLessLoader, useEslintRc, addWebpackAlias,addWebpackPlugin, fixBabelImports } = require('customize-cra');
const FileManager = require('filemanager-webpack-plugin');
const isDev = process.env.NODE_ENV === 'development';
console.log('环境变量测试', process.env.BUILD_PATH, isDev);
module.exports = {
webpack:override(
addLessLoader({
javascriptEnabled: true,
localIdentName: '[local]--[hash:base64:5]'
}),
useEslintRc(),
addWebpackAlias({
['@store']: path.resolve(__dirname, 'src/store'),
['@assets']: path.resolve(__dirname, 'src/assets'),
['@components']: path.resolve(__dirname, 'src/components'),
['@util']: path.resolve(__dirname, 'src/util'),
['@']: path.resolve(__dirname, 'src'),
}),
fixBabelImports('import', {
libraryName: 'antd',
style: true
}),
!isDev &&
addWebpackPlugin(
new FileManager({
onEnd: {
delete: [`./${process.env.BUILD_PATH}.zip`],
archive: [{ source: `./${process.env.BUILD_PATH}`, destination: `./${process.env.BUILD_PATH}.zip` }]
}
})
),
(config) => {
config.output.path = path.join(__dirname, `${process.env.BUILD_PATH}`);
return config;
}
),
paths: function (paths) {
paths.appBuild = path.resolve(__dirname, `${process.env.BUILD_PATH}`);
return paths;
}
}