config.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. // https://umijs.org/config/
  2. import { defineConfig } from 'umi';
  3. import defaultSettings from './defaultSettings';
  4. import proxy from './proxy';
  5. import routes from './routes';
  6. const { REACT_APP_ENV } = process.env;
  7. export default defineConfig({
  8. hash: true,
  9. antd: {},
  10. dva: {
  11. hmr: true,
  12. },
  13. history: {
  14. type: 'browser',
  15. },
  16. locale: {
  17. // default zh-CN
  18. default: 'zh-CN',
  19. antd: true,
  20. // default true, when it is true, will use `navigator.language` overwrite default
  21. baseNavigator: false,
  22. },
  23. dynamicImport: {
  24. loading: '@/components/PageLoading/index',
  25. },
  26. targets: {
  27. ie: 11,
  28. },
  29. // umi routes: https://umijs.org/docs/routing
  30. routes: routes,
  31. // Theme for antd: https://ant.design/docs/react/customize-theme-cn
  32. theme: {
  33. 'primary-color': defaultSettings.primaryColor,
  34. },
  35. title: false,
  36. ignoreMomentLocale: true,
  37. proxy: proxy[REACT_APP_ENV || 'dev'],
  38. manifest: {
  39. basePath: '/',
  40. },
  41. devtool: 'eval',
  42. nodeModulesTransform: {
  43. type: 'none',
  44. exclude: [],
  45. },
  46. chunks: ['vendors', 'umi'],
  47. chainWebpack: function (config, { webpack }) {
  48. config.merge({
  49. optimization: {
  50. splitChunks: {
  51. chunks: 'all',
  52. minSize: 30000,
  53. minChunks: 3,
  54. automaticNameDelimiter: '.',
  55. cacheGroups: {
  56. vendor: {
  57. name: 'vendors',
  58. test({ resource }) {
  59. return /[\\/]node_modules[\\/]/.test(resource);
  60. },
  61. priority: 10,
  62. },
  63. },
  64. },
  65. },
  66. });
  67. },
  68. });