import defaultSettings from './defaultSettings'; import router from './router.config'; import slash from 'slash2'; import { resolve } from 'path'; export default { base: '/', publicPath: '/', define: { mode: process.env.REACT_APP_ENV ? process.env.REACT_APP_ENV.toString() : 'dev', }, antd: {}, mfsu: {}, webpack5: {}, //样式生效必须写在styles里面 // styles: [ 'https://cdnjs.cloudflare.com/ajax/libs/antd/3.22.2/antd.min.css'], dva: { // 开启dva-immer,用于代理currentState和nextState之间的改变,即当前状态修改副本 immer: true, // 开启模块热加载(热更新) hmr: true, }, // 开启路由动态加载 dynamicImport: { loading: '@/components/PageLoading', }, hash: true, // 启用 Hash 路由 history: { type: 'hash', }, targets: { ie: 9, }, // 别名配置 alias: { '@': resolve(__dirname, './src'), }, devtool: process.env.REACT_APP_ENV === 'dev' ? 'source-map' : false, title: '生态系统碳汇平台', routes: router, // Theme for antd: https://ant.design/docs/react/customize-theme-cn theme: { 'primary-color': defaultSettings.primaryColor, // 'content-width': defaultSettings.contentWidth, 'font-size-base': defaultSettings.fontSizeBase, // 'body-background': defaultSettings.bodyBackground, 'component-background': defaultSettings.componentBackground, 'link-color': defaultSettings.linkColor, 'success-color': defaultSettings.successColor, 'warning-color': defaultSettings.warningColor, 'error-color': defaultSettings.errorColor, // 'heading-color': defaultSettings.headingColor, 'text-color': defaultSettings.textColor, // 'text-color-secondary': defaultSettings.textColorSecondary, 'disabled-color': defaultSettings.disabledColor, // 'border-radius-base': defaultSettings.borderRadiusBase, // 'border-color-base': defaultSettings.borderColorBase, // 'box-shadow-base': defaultSettings.boxShadowBase }, ignoreMomentLocale: true, //忽略 moment 的 locale 文件,用于减少尺寸 lessLoader: { javascriptEnabled: true, }, cssLoader: { modules: { 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: '/', }, /* proxy: { '/server/api/': { target: 'https://preview.pro.ant.design/', changeOrigin: true, pathRewrite: { '^/server': '' }, }, }, */ };