12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- // https://umijs.org/config/
- import proxy from './proxy'
- import routes from './routes'
- import { defineConfig } from '@umijs/max'
- const CompressionPlugin = require('compression-webpack-plugin')
- const prodGzipList = ['js', 'css', 'html']
- const { REACT_APP_ENV } = process.env
- export default defineConfig({
- plugins: [require.resolve('@umijs/plugins/dist/unocss')],
- npmClient: 'pnpm',
- hash: true,
- antd: {},
- model: {},
- moment2dayjs: {},
- request: {},
- initialState: {},
- access: {},
- dva: {},
- mfsu: {},
- srcTranspiler: 'esbuild',
- fastRefresh: true,
- unocss: {
- watch: ['src/pages/global.less', 'src/pages/**/*.{jsx,tsx,less}', 'src/components/**/*.{jsx,tsx,less}'] // 添加其他包含 unocss 的 classname 的文件目录
- },
- // Fast Refresh 热更新
- theme: { 'primary-color': '#886ab5' },
- layout: {},
- deadCode: {}, // 检测未使用的文件和导出,仅在 build 阶段开启
- locale: {
- default: 'zh-CN',
- antd: false,
- baseNavigator: false
- },
- define: { REACT_APP_ENV: REACT_APP_ENV || false },
- routes,
- title: false,
- proxy: proxy[REACT_APP_ENV || 'dev'],
- manifest: { basePath: '/' },
- extraBabelPlugins: [
- [
- 'import',
- {
- libraryName: '@icon-park/react',
- libraryDirectory: 'es/icons',
- camel2DashComponentName: false
- },
- '@icon-park/react'
- ],
- [
- 'import',
- {
- libraryName: 'antd',
- libraryDirectory: 'es',
- style: 'less'
- },
- 'antd'
- ]
- ],
- externals: REACT_APP_ENV !== 'dev' && {
- react: 'React',
- 'react-dom': 'ReactDOM'
- },
- chainWebpack(config, { env }) {
- config.plugin('compression-webpack-plugin').use(
- new CompressionPlugin({
- // filename: 文件名称,这里我们不设置,让它保持和未压缩的文件同一个名称
- algorithm: 'gzip', // 指定生成gzip格式
- test: new RegExp('\\.(' + prodGzipList.join('|') + ')$'), // 匹配哪些格式文件需要压缩
- threshold: 10000, //对超过10k的数据进行压缩
- minRatio: 0.6 // 压缩比例,值为0 ~ 1
- })
- )
- }
- })
|