config.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import defaultSettings from './defaultSettings';
  2. import router from './router.config';
  3. import slash from 'slash2';
  4. import { resolve } from 'path';
  5. export default {
  6. base: '/',
  7. publicPath: '/',
  8. define: {
  9. mode: process.env.REACT_APP_ENV
  10. ? process.env.REACT_APP_ENV.toString()
  11. : 'dev',
  12. },
  13. antd: {},
  14. mfsu: {},
  15. webpack5: {},
  16. //样式生效必须写在styles里面
  17. // styles: [ 'https://cdnjs.cloudflare.com/ajax/libs/antd/3.22.2/antd.min.css'],
  18. dva: {
  19. // 开启dva-immer,用于代理currentState和nextState之间的改变,即当前状态修改副本
  20. immer: true,
  21. // 开启模块热加载(热更新)
  22. hmr: true,
  23. },
  24. // 开启路由动态加载
  25. dynamicImport: {
  26. loading: '@/components/PageLoading',
  27. },
  28. hash: true,
  29. // 启用 Hash 路由
  30. history: {
  31. type: 'hash',
  32. },
  33. targets: {
  34. ie: 9,
  35. },
  36. // 别名配置
  37. alias: {
  38. '@': resolve(__dirname, './src'),
  39. },
  40. devtool: process.env.REACT_APP_ENV === 'dev' ? 'source-map' : false,
  41. title: '生态系统碳汇平台',
  42. routes: router,
  43. // Theme for antd: https://ant.design/docs/react/customize-theme-cn
  44. theme: {
  45. 'primary-color': defaultSettings.primaryColor,
  46. // 'content-width': defaultSettings.contentWidth,
  47. 'font-size-base': defaultSettings.fontSizeBase,
  48. // 'body-background': defaultSettings.bodyBackground,
  49. 'component-background': defaultSettings.componentBackground,
  50. 'link-color': defaultSettings.linkColor,
  51. 'success-color': defaultSettings.successColor,
  52. 'warning-color': defaultSettings.warningColor,
  53. 'error-color': defaultSettings.errorColor,
  54. // 'heading-color': defaultSettings.headingColor,
  55. 'text-color': defaultSettings.textColor,
  56. // 'text-color-secondary': defaultSettings.textColorSecondary,
  57. 'disabled-color': defaultSettings.disabledColor,
  58. // 'border-radius-base': defaultSettings.borderRadiusBase,
  59. // 'border-color-base': defaultSettings.borderColorBase,
  60. // 'box-shadow-base': defaultSettings.boxShadowBase
  61. },
  62. ignoreMomentLocale: true, //忽略 moment 的 locale 文件,用于减少尺寸
  63. lessLoader: {
  64. javascriptEnabled: true,
  65. },
  66. cssLoader: {
  67. modules: {
  68. getLocalIdent: (context, _, localName) => {
  69. if (
  70. context.resourcePath.includes('node_modules') ||
  71. context.resourcePath.includes('ant.design.pro.less') ||
  72. context.resourcePath.includes('global.less')
  73. ) {
  74. return localName;
  75. }
  76. const match = context.resourcePath.match(/src(.*)/);
  77. if (match && match[1]) {
  78. const antdProPath = match[1].replace('.less', '');
  79. const arr = slash(antdProPath)
  80. .split('/')
  81. .map((a) => a.replace(/([A-Z])/g, '-$1'))
  82. .map((a) => a.toLowerCase());
  83. return `antd-pro${arr.join('-')}-${localName}`.replace(/--/g, '-');
  84. }
  85. return localName;
  86. },
  87. },
  88. },
  89. manifest: {
  90. basePath: '/',
  91. },
  92. /*
  93. proxy: {
  94. '/server/api/': {
  95. target: 'https://preview.pro.ant.design/',
  96. changeOrigin: true,
  97. pathRewrite: { '^/server': '' },
  98. },
  99. },
  100. */
  101. };