| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171 |
- // https://umijs.org/config/
- import os from 'os';
- import slash from 'slash2';
- import { IPlugin, IConfig } from 'umi-types';
- import defaultSettings from './defaultSettings';
- import webpackPlugin from './plugin.config';
- const { pwa, primaryColor } = defaultSettings;
- // 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, TEST, NODE_ENV } = process.env;
- const plugins: IPlugin[] = [
- [
- '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,
- ...(!TEST && os.platform() === 'darwin'
- ? {
- dll: {
- include: ['dva', 'dva/router', 'dva/saga', 'dva/fetch'],
- exclude: ['@babel/runtime', 'netlify-lambda'],
- },
- hardSource: false,
- }
- : {}),
- },
- ],
- [
- 'umi-plugin-pro-block',
- {
- moveMock: false,
- moveService: false,
- modifyRequest: true,
- autoAddMenu: true,
- },
- ],
- ]; // 针对 preview.pro.ant.design 的 GA 统计代码
- // preview.pro.ant.design only do not use in your production ; preview.pro.ant.design 专用环境变量,请不要在你的项目中使用它。
- if (ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION === 'site') {
- plugins.push([
- 'umi-plugin-ga',
- {
- code: 'UA-72788897-6',
- },
- ]);
- }
- const uglifyJSOptions =
- NODE_ENV === 'production'
- ? {
- uglifyOptions: {
- // remove console.* except console.error
- compress: {
- drop_console: true,
- pure_funcs: ['console.error'],
- },
- },
- }
- : {};
- export default {
- // add for transfer to umi
- plugins,
- define: {
- ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION:
- 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 专用环境变量,请不要在你的项目中使用它。
- },
- block: {
- defaultGitUrl: 'https://github.com/ant-design/pro-blocks',
- },
- treeShaking: true,
- targets: {
- ie: 11,
- },
- devtool: ANT_DESIGN_PRO_ONLY_DO_NOT_USE_IN_YOUR_PRODUCTION ? 'source-map' : false,
- // 路由配置
- routes: [
- {
- path: '/',
- component: '../layouts/BasicLayout',
- Routes: ['src/pages/Authorized'],
- authority: ['admin', 'user'],
- routes: [
- {
- path: '/',
- name: 'welcome',
- icon: 'smile',
- component: './Welcome',
- },
- ],
- },
- ],
- // Theme for antd
- // https://ant.design/docs/react/customize-theme-cn
- theme: {
- 'primary-color': primaryColor,
- },
- // proxy: {
- // '/server/api/': {
- // target: 'https://preview.pro.ant.design/',
- // changeOrigin: true,
- // pathRewrite: { '^/server': '' },
- // },
- // },
- ignoreMomentLocale: true,
- lessLoaderOptions: {
- javascriptEnabled: true,
- },
- disableRedirectHoist: true,
- cssLoaderOptions: {
- modules: true,
- getLocalIdent: (
- context: {
- resourcePath: string;
- },
- localIdentName: 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 = 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: {
- basePath: '/',
- },
- uglifyJSOptions,
- chainWebpack: webpackPlugin,
- } as IConfig;
|