config.js 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. /* eslint-disable react/destructuring-assignment */
  2. // https://umijs.org/config/
  3. const pageRoutes = require('./router.config');
  4. const path = require('path');
  5. export default {
  6. // add for transfer to umi
  7. plugins: [
  8. 'umi-plugin-dva',
  9. 'umi-plugin-locale',
  10. // TODO 决定是否使用约定路由,如果使用配置路由那么 umi-plugin-routes 可以去掉了
  11. // [
  12. // 'umi-plugin-routes',
  13. // {
  14. // exclude: [/\.test\.js/],
  15. // update(routes) {
  16. // return [...pageRoutes, ...routes];
  17. // },
  18. // },
  19. // ],
  20. ],
  21. locale: {
  22. enable: true, // default false
  23. default: 'zh-CN', // default zh-CN
  24. baseNavigator: true, // default true, when it is true, will use `navigator.language` overwrite default
  25. antd: true, // use antd, default is true
  26. },
  27. // 路由配置
  28. routes: pageRoutes,
  29. theme: {
  30. 'card-actions-background': '#f5f8fa',
  31. },
  32. // entry: 'src/index.js', // TODO remove
  33. extraBabelPlugins: [['import', { libraryName: 'antd', libraryDirectory: 'es', style: true }]],
  34. env: {
  35. development: {
  36. extraBabelPlugins: ['dva-hmr'],
  37. },
  38. },
  39. externals: {
  40. '@antv/data-set': 'DataSet',
  41. rollbar: 'rollbar',
  42. },
  43. alias: {
  44. components: path.resolve(__dirname, '../src/components/'),
  45. utils: path.resolve(__dirname, '../src/utils/'),
  46. assets: path.resolve(__dirname, '../src/assets/'),
  47. common: path.resolve(__dirname, '../src/common/'),
  48. },
  49. ignoreMomentLocale: true,
  50. lessLoaderOptions: {
  51. javascriptEnabled: true,
  52. },
  53. cssLoaderOptions: {
  54. modules: true,
  55. getLocalIdent: (context, localIdentName, localName) => {
  56. if (
  57. context.resourcePath.includes('node_modules') ||
  58. context.resourcePath.includes('ant.design.pro.less')
  59. ) {
  60. return localName;
  61. }
  62. const antdProPath = context.resourcePath.match(/src(.*)/)[1].replace('.less', '');
  63. const arr = antdProPath
  64. .split('/')
  65. .map(a => a.replace(/([A-Z])/g, '-$1'))
  66. .map(a => a.toLowerCase());
  67. return `antd-pro${arr.join('-')}-${localName}`.replace(/--/g, '-');
  68. },
  69. },
  70. disableFastClick: true,
  71. manifest: {
  72. name: 'ant-design-pro',
  73. background_color: '#FFF',
  74. description: 'An out-of-box UI solution for enterprise applications as a React boilerplate.',
  75. display: 'standalone',
  76. start_url: '/index.html',
  77. icons: [
  78. {
  79. src: '/favicon.png',
  80. sizes: '48x48',
  81. type: 'image/png',
  82. },
  83. ],
  84. },
  85. };