import { IConfig , IPlugin } from 'umi-types' ; import defaultSettings from './defaultSettings' ; import routes from './router.config' ; import slash from 'slash2' ; import webpackPlugin from './plugin.config' ; const { pwa , primaryColor } = defaultSettings ; const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION , MOCK_JS } = process . env ; const isAntDesignProPreview = ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site' ; const plugins = [ [ '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 , } , ] , ] ; export default { plugins , block : { defaultGitUrl : 'https://github.com/ant-design/pro-blocks' , } , hash : true , targets : { ie : 11 , } , devtool : isAntDesignProPreview ? 'source-map' : false , routes : routes , theme : { 'primary-color' : primaryColor , } , define : { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION : ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION || '' , MOCK_JS : MOCK_JS || false , } , 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 : '/' , } , mock : { exclude : [ 'mock/mockjs*.js' , 'mock/utils.ts' ] , } , chainWebpack : webpackPlugin , } as IConfig ;