|
|
@@ -1,87 +1,32 @@
|
|
|
-import { IConfig, IPlugin } from 'umi-types';
|
|
|
-import defaultSettings from './defaultSettings'; // https://umijs.org/config/
|
|
|
-import slash from 'slash2';
|
|
|
-import themePluginConfig from './themePluginConfig';
|
|
|
+// https://umijs.org/config/
|
|
|
+import { defineConfig, utils } from 'umi';
|
|
|
+import defaultSettings from './defaultSettings';
|
|
|
import proxy from './proxy';
|
|
|
import webpackPlugin from './plugin.config';
|
|
|
|
|
|
-const { pwa } = defaultSettings;
|
|
|
+const { winPath } = utils;
|
|
|
|
|
|
// preview.pro.ant.design only do not use in your production ;
|
|
|
// preview.pro.ant.design 专用环境变量,请不要在你的项目中使用它。
|
|
|
-const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION, REACT_APP_ENV } = process.env;
|
|
|
-const isAntDesignProPreview = ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site';
|
|
|
-const plugins: IPlugin[] = [
|
|
|
- ['umi-plugin-antd-icon-config', {}],
|
|
|
- [
|
|
|
- 'umi-plugin-react',
|
|
|
- {
|
|
|
- antd: true,
|
|
|
- dva: {
|
|
|
- hmr: true,
|
|
|
- },
|
|
|
- locale: {
|
|
|
- // default false
|
|
|
- enable: true,
|
|
|
- // default zh-CN
|
|
|
- default: 'zh-CN',
|
|
|
- // default true, when it is true, will use `navigator.language` overwrite default
|
|
|
- baseNavigator: true,
|
|
|
- },
|
|
|
- dynamicImport: {
|
|
|
- loadingComponent: './components/PageLoading/index',
|
|
|
- webpackChunkName: true,
|
|
|
- level: 3,
|
|
|
- },
|
|
|
- pwa: pwa
|
|
|
- ? {
|
|
|
- workboxPluginMode: 'InjectManifest',
|
|
|
- workboxOptions: {
|
|
|
- importWorkboxFrom: 'local',
|
|
|
- },
|
|
|
- }
|
|
|
- : false,
|
|
|
- // default close dll, because issue https://github.com/ant-design/ant-design-pro/issues/4665
|
|
|
- // dll features https://webpack.js.org/plugins/dll-plugin/
|
|
|
- // dll: {
|
|
|
- // include: ['dva', 'dva/router', 'dva/saga', 'dva/fetch'],
|
|
|
- // exclude: ['@babel/runtime'],
|
|
|
- // },
|
|
|
- },
|
|
|
- ],
|
|
|
- [
|
|
|
- 'umi-plugin-pro-block',
|
|
|
- {
|
|
|
- moveMock: false,
|
|
|
- moveService: false,
|
|
|
- modifyRequest: true,
|
|
|
- autoAddMenu: true,
|
|
|
- },
|
|
|
- ],
|
|
|
-];
|
|
|
+const { ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION, REACT_APP_ENV, GA_KEY } = process.env;
|
|
|
|
|
|
-if (isAntDesignProPreview) {
|
|
|
- // 针对 preview.pro.ant.design 的 GA 统计代码
|
|
|
- plugins.push([
|
|
|
- 'umi-plugin-ga',
|
|
|
- {
|
|
|
- code: 'UA-72788897-6',
|
|
|
- },
|
|
|
- ]);
|
|
|
-
|
|
|
- plugins.push([
|
|
|
- 'umi-plugin-pro',
|
|
|
- {
|
|
|
- serverUrl: 'https://proapi.azurewebsites.net',
|
|
|
- },
|
|
|
- ]);
|
|
|
-
|
|
|
- plugins.push(['umi-plugin-antd-theme', themePluginConfig]);
|
|
|
-}
|
|
|
-
|
|
|
-export default {
|
|
|
- plugins,
|
|
|
+export default defineConfig({
|
|
|
hash: true,
|
|
|
+ antd: {},
|
|
|
+ analytics: GA_KEY ? { ga: GA_KEY } : false,
|
|
|
+ dva: {
|
|
|
+ hmr: true,
|
|
|
+ },
|
|
|
+ locale: {
|
|
|
+ // default zh-CN
|
|
|
+ default: 'zh-CN',
|
|
|
+ // default true, when it is true, will use `navigator.language` overwrite default
|
|
|
+ antd: true,
|
|
|
+ baseNavigator: true,
|
|
|
+ },
|
|
|
+ dynamicImport: {
|
|
|
+ loading: '@/components/PageLoading/index',
|
|
|
+ },
|
|
|
targets: {
|
|
|
ie: 11,
|
|
|
},
|
|
|
@@ -164,36 +109,36 @@ export default {
|
|
|
ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION || '', // preview.pro.ant.design only do not use in your production ; preview.pro.ant.design 专用环境变量,请不要在你的项目中使用它。
|
|
|
},
|
|
|
ignoreMomentLocale: true,
|
|
|
- lessLoaderOptions: {
|
|
|
+ lessLoader: {
|
|
|
javascriptEnabled: true,
|
|
|
},
|
|
|
- disableRedirectHoist: true,
|
|
|
- cssLoaderOptions: {
|
|
|
- modules: true,
|
|
|
- getLocalIdent: (
|
|
|
- context: {
|
|
|
- resourcePath: string;
|
|
|
- },
|
|
|
- _: string,
|
|
|
- localName: string,
|
|
|
- ) => {
|
|
|
- if (
|
|
|
- context.resourcePath.includes('node_modules') ||
|
|
|
- context.resourcePath.includes('ant.design.pro.less') ||
|
|
|
- context.resourcePath.includes('global.less')
|
|
|
- ) {
|
|
|
+ cssLoader: {
|
|
|
+ modules: {
|
|
|
+ getLocalIdent: (
|
|
|
+ context: {
|
|
|
+ resourcePath: string;
|
|
|
+ },
|
|
|
+ _: string,
|
|
|
+ localName: string,
|
|
|
+ ) => {
|
|
|
+ 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 = winPath(antdProPath)
|
|
|
+ .split('/')
|
|
|
+ .map((a: string) => a.replace(/([A-Z])/g, '-$1'))
|
|
|
+ .map((a: string) => a.toLowerCase());
|
|
|
+ return `antd-pro${arr.join('-')}-${localName}`.replace(/--/g, '-');
|
|
|
+ }
|
|
|
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: string) => a.replace(/([A-Z])/g, '-$1'))
|
|
|
- .map((a: string) => a.toLowerCase());
|
|
|
- return `antd-pro${arr.join('-')}-${localName}`.replace(/--/g, '-');
|
|
|
- }
|
|
|
- return localName;
|
|
|
+ },
|
|
|
},
|
|
|
},
|
|
|
manifest: {
|
|
|
@@ -201,4 +146,4 @@ export default {
|
|
|
},
|
|
|
proxy: proxy[REACT_APP_ENV || 'dev'],
|
|
|
chainWebpack: webpackPlugin,
|
|
|
-} as IConfig;
|
|
|
+});
|