import { IConfig , IPlugin } from 'umi-types' ; import defaultSettings from './defaultSettings' ; import slash from 'slash2' ; import themePluginConfig from './themePluginConfig' ; const { pwa } = defaultSettings ; const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION } = process . env ; const isAntDesignProPreview = ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site' ; const plugins = [ [ 'umi-plugin-antd-icon-config' , { } ] , [ 'umi-plugin-react' , { antd : true , dva : { hmr : true , } , locale : { enable : true , default : 'zh-CN' , baseNavigator : true , } , dynamicImport : { loadingComponent : './components/PageLoading/index' , webpackChunkName : true , level : 3 , } , pwa : pwa ? { workboxPluginMode : 'InjectManifest' , workboxOptions : { importWorkboxFrom : 'local' , } , } : false , } , ] , [ 'umi-plugin-pro-block' , { moveMock : false , moveService : false , modifyRequest : true , autoAddMenu : true , } , ] , ] ; if ( isAntDesignProPreview ) { plugins . push ( [ 'umi-plugin-ga' , { code : 'UA-72788897-6' , } , ] ) ; plugins . push ( [ 'umi-plugin-antd-theme' , themePluginConfig ] ) ; } export default { plugins , hash : true , targets : { ie : 11 , } , routes : [ { path : '/user' , component : '../layouts/UserLayout' , routes : [ { name : 'login' , path : '/user/login' , component : './user/login' , } , ] , } , { path : '/' , component : '../layouts/SecurityLayout' , routes : [ { path : '/' , component : '../layouts/BasicLayout' , authority : [ 'admin' , 'user' ] , routes : [ { path : '/' , redirect : '/welcome' , } , { path : '/welcome' , name : 'welcome' , icon : 'smile' , component : './Welcome' , } , { path : '/admin' , name : 'admin' , icon : 'crown' , component : './Admin' , authority : [ 'admin' ] , } , { name : 'list.table-list' , icon : 'table' , path : '/list' , component : './ListTableList' , } , { name : '分析页' , icon : 'smile' , path : '/dashboardanalysis' , component : './DashboardAnalysis' , } , { name : '高级表单' , icon : 'smile' , path : '/formadvancedform' , component : './FormAdvancedForm' , } , { name : '高级详情页' , icon : 'smile' , path : '/profileadvanced' , component : './ProfileAdvanced' , } , { component : './404' , } , ] , } , { component : './404' , } , ] , } , { component : './404' , } , ] , theme : { } , define : { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION : ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION || '' , } , ignoreMomentLocale : true , lessLoaderOptions : { javascriptEnabled : true , } , disableRedirectHoist : true , cssLoaderOptions : { modules : true , getLocalIdent : ( context , _ , 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 : '/' , } , } as IConfig ;