| 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.envexport 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      })    )  }})
 |