122 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Java
		
	
	
			
		
		
	
	
			122 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Java
		
	
	
// https://umijs.org/config/
 | 
						|
import os from 'os';
 | 
						|
import pageRoutes from './router.config';
 | 
						|
import webpackPlugin from './plugin.config';
 | 
						|
import defaultSettings from '../src/defaultSettings';
 | 
						|
import slash from 'slash2';
 | 
						|
import proxy from './proxy';
 | 
						|
 | 
						|
const { pwa, primaryColor } = defaultSettings;
 | 
						|
const { NODE_ENV, APP_TYPE, TEST, BASE_PATH } = process.env;
 | 
						|
 | 
						|
// 用于控制,部署非跟目录下
 | 
						|
const basePath = BASE_PATH ? BASE_PATH : '';
 | 
						|
 | 
						|
const plugins = [
 | 
						|
  [
 | 
						|
    'umi-plugin-react',
 | 
						|
    {
 | 
						|
      antd: true,
 | 
						|
      dva: {
 | 
						|
        hmr: true,
 | 
						|
      },
 | 
						|
      locale: {
 | 
						|
        enable: true, // default false
 | 
						|
        default: 'zh-CN', // default zh-CN
 | 
						|
        baseNavigator: true, // default true, when it is true, will use `navigator.language` overwrite default
 | 
						|
      },
 | 
						|
      dynamicImport: {
 | 
						|
        loadingComponent: './components/PageLoading/index',
 | 
						|
        webpackChunkName: true,
 | 
						|
        level: 3,
 | 
						|
      },
 | 
						|
      pwa: pwa
 | 
						|
        ? {
 | 
						|
            workboxPluginMode: 'InjectManifest',
 | 
						|
            workboxOptions: {
 | 
						|
              importWorkboxFrom: 'local',
 | 
						|
            },
 | 
						|
          }
 | 
						|
        : {},
 | 
						|
      ...(!TEST && os.platform() === 'darwin'
 | 
						|
        ? {
 | 
						|
            dll: {
 | 
						|
              include: ['dva', 'dva/router', 'dva/saga', 'dva/fetch'],
 | 
						|
              exclude: ['@babel/runtime'],
 | 
						|
            },
 | 
						|
            hardSource: false,
 | 
						|
          }
 | 
						|
        : {}),
 | 
						|
    },
 | 
						|
  ],
 | 
						|
];
 | 
						|
 | 
						|
// 针对 preview.pro.ant.design 的 GA 统计代码
 | 
						|
// 业务上不需要这个
 | 
						|
if (APP_TYPE === 'site') {
 | 
						|
  plugins.push([
 | 
						|
    'umi-plugin-ga',
 | 
						|
    {
 | 
						|
      code: 'UA-72788897-6',
 | 
						|
    },
 | 
						|
  ]);
 | 
						|
}
 | 
						|
 | 
						|
export default {
 | 
						|
  // add for transfer to umi
 | 
						|
  base: basePath,
 | 
						|
  publicPath: basePath,
 | 
						|
  plugins,
 | 
						|
  define: {
 | 
						|
    APP_TYPE: APP_TYPE || '',
 | 
						|
  },
 | 
						|
  treeShaking: true,
 | 
						|
  targets: {
 | 
						|
    ie: 11,
 | 
						|
  },
 | 
						|
  // 路由配置
 | 
						|
  routes: pageRoutes,
 | 
						|
  // Theme for antd
 | 
						|
  // https://ant.design/docs/react/customize-theme-cn
 | 
						|
  theme: {
 | 
						|
    'primary-color': primaryColor,
 | 
						|
  },
 | 
						|
  externals: {
 | 
						|
    '@antv/data-set': 'DataSet',
 | 
						|
    bizcharts: 'BizCharts',
 | 
						|
  },
 | 
						|
  proxy: proxy(NODE_ENV, basePath),
 | 
						|
  ignoreMomentLocale: true,
 | 
						|
  lessLoaderOptions: {
 | 
						|
    javascriptEnabled: true,
 | 
						|
  },
 | 
						|
  disableRedirectHoist: true,
 | 
						|
  cssLoaderOptions: {
 | 
						|
    modules: true,
 | 
						|
    getLocalIdent: (context, localIdentName, localName) => {
 | 
						|
      if (
 | 
						|
        context.resourcePath.includes('node_modules') ||
 | 
						|
        context.resourcePath.includes('ant.design.pro.less') ||
 | 
						|
        context.resourcePath.includes('global.less')
 | 
						|
      ) {
 | 
						|
        return localName;
 | 
						|
      }
 | 
						|
      const match = context.resourcePath.match(/src(.*)/);
 | 
						|
      if (match && match[1]) {
 | 
						|
        const antdProPath = match[1].replace('.less', '');
 | 
						|
        const arr = slash(antdProPath)
 | 
						|
          .split('/')
 | 
						|
          .map(a => a.replace(/([A-Z])/g, '-$1'))
 | 
						|
          .map(a => a.toLowerCase());
 | 
						|
        return `antd-pro${arr.join('-')}-${localName}`.replace(/--/g, '-');
 | 
						|
      }
 | 
						|
      return localName;
 | 
						|
    },
 | 
						|
  },
 | 
						|
  manifest: {
 | 
						|
    basePath: '/',
 | 
						|
  },
 | 
						|
 | 
						|
  chainWebpack: webpackPlugin,
 | 
						|
};
 |