.umirc.ts 1.19 KB
import { defineConfig } from 'umi';
import pkg from './package.json';
import routes from './src/routes';
import path from 'path';

export default defineConfig({
  esbuild: {},
  mountElementId: pkg.name,
  webpack5: {
    lazyCompilation: {},
  },
  runtimePublicPath: false,
  nodeModulesTransform: {
    type: 'none',
  },
  history: {
    type: 'hash'
  },
  hash: true,
  title: false,
  lessLoader: {
    globalVars: {
      theme: 'true;@import "~@/variable.less"',
    },
  },
  antd: {
    config: {
    }
  },
  routes,
  fastRefresh: {},
  qiankun: {
    slave: {}
  },
  chainWebpack(memo, { env, webpack, createCSSRule }) {
    if (process.env.NODE_ENV === 'production') {
      memo.merge({
        externals: function ({ context, request }: Record<string, string>, callback: any) {
          if (/^react$/.test(request)) {
            return callback(null, 'react', 'React');
          }

          if (/^react-dom$/.test(request)) {
            return callback(null, 'react-dom', 'ReactDOM');
          }

          if (/antd.*\.(css|less)$/.test(path.resolve(context, request))) {
            return callback(null, 'antd-style');
          }

          callback();
        },
      });
    }
  },
});