第一步 安装插件
npm install filemanager-webpack-plugin@1.0.29 --save-dev
或
yarn add filemanager-webpack-plugin@1.0.29 --dev
因为我是要打jar包,filemanager-webpack-plugin插件支持打成压缩包zip,gz等格式,但是不支持打成jar包,因为以前有一个vue项目用filemanager-webpack-plugin可以打成jar包,所以我猜测是我这次的用的插件版本和之前项目用的插件版本不一致,为此,修改插件版本为1.0.29的filemanager-webpack-plugin,经测试可以成功打成jar包,最新版本的插件,无法打成jar包。
ps: npm安装如果报错可以使用yarn试试,我也是装了好几次才装上。
第二步 配置antd pro config文件 chainWebpack
// https://umijs.org/config/
import { defineConfig } from 'umi';
import defaultSettings from './defaultSettings';
import proxy from './proxy';
import routes from './routes';
const fileManager = require('filemanager-webpack-plugin');
const { REACT_APP_ENV, UMI_ENV } = process.env;
export default defineConfig({
publicPath: UMI_ENV === 'dev' ? '/' : '/xxx/',
// 打包后文件的输出路径
outputPath: 'dist/META-INF/resources',
// filemanager-webpack-plugin插件配置
chainWebpack(memo) {
if (UMI_ENV !== 'dev') { // 本地启动不使用此插件(如果不判断是否本地启动,本地启动后热更新会报错)
memo.plugin('filemanager').use(fileManager, [
{
onEnd: {
delete: ['./xxx-web-1.0.0-SNAPSHOT.jar'],
archive: [
{
source: './dist',
destination: './xxx-web-1.0.0-SNAPSHOT.jar',
},
],
},
},
]);
}
},
hash: true,
antd: {},
dva: {
hmr: true,
},
history: {
type: 'hash',
},
locale: {
// default zh-CN
default: 'zh-CN',
antd: true,
// default true, when it is true, will use `navigator.language` overwrite default
baseNavigator: true,
},
dynamicImport: {
loading: '@/components/PageLoading/index',
},
targets: {
ie: 11,
},
// umi routes: https://umijs.org/docs/routing
routes,
// Theme for antd: https://ant.design/docs/react/customize-theme-cn
theme: {
'primary-color': defaultSettings.primaryColor,
'border-radius-base': '4px',
},
title: false,
ignoreMomentLocale: true,
proxy: proxy[REACT_APP_ENV || 'dev'],
manifest: {
basePath: '/',
},
esbuild: {},
});
第三步 执行npm run build
即可看到项目目录多出了一个jar文件。