config.ts 2.14 KB
import { defineConfig } from "umi";
import routers from "./routers";
import proxy from "./proxy";
import webpackPlugin from "./plugin.config";

const { REACT_APP_ENV } = process.env;

export default defineConfig({
  dva: {
    hmr: true,
  },
  fastRefresh: {},
  devtool: false,
  // umi routes: https://umijs.org/zh/guide/router.html
  routes: routers,
  define: {
    PROD_APP_ENV: (REACT_APP_ENV || "dev") === "prod",
  },
  // Theme for antd: https://ant.design/docs/react/customize-theme-cn
  theme: {
    "primary-color": (REACT_APP_ENV || "dev") === "prod" ? "#1890FF" : "#FAAD14",
  },
  // layout: defaultSettings,
  locale: {
    // default zh-CN
    default: "zh-CN",
    // default true, when it is true, will use `navigator.language` overwrite default
    antd: true,
    baseNavigator: true,
  },
  ignoreMomentLocale: true,
  dynamicImport: {
    loading: "@/components/PageLoading/index",
  },
  manifest: {
    basePath: "/",
  },
  base: "/",
  hash: true,
  history: {
    type: "hash",
  },
  proxy: proxy[REACT_APP_ENV || "dev"],
  nodeModulesTransform: {
    type: process.env.NODE_ENV == "development" ? "none" : "all",
    exclude: [],
  },
  externals: {
    "@antv/g2": "G2",
    "@antv/data-set": "DataSet",
    bizcharts: "BizCharts",
    lodash: "window._",
    react: "window.React",
    "react-dom": "window.ReactDOM",
    "@ant-design/icons": "icons",
  },
  scripts:
    process.env.NODE_ENV === "development"
      ? [
          "https://gw.alipayobjects.com/os/lib/react/16.13.1/umd/react.development.js",
          "https://gw.alipayobjects.com/os/lib/react-dom/16.13.1/umd/react-dom.development.js",
          "https://cdn.staticfile.org/lodash.js/4.17.15/lodash.min.js",
          "https://cdn.staticfile.org/ant-design-icons/4.1.0/index.umd.js",
        ]
      : [
          "https://gw.alipayobjects.com/os/lib/react/16.13.1/umd/react.production.min.js",
          "https://gw.alipayobjects.com/os/lib/react-dom/16.13.1/umd/react-dom.production.min.js",
          "https://cdn.staticfile.org/lodash.js/4.17.15/lodash.min.js",
          "https://cdn.staticfile.org/ant-design-icons/4.1.0/index.umd.min.js",
        ],
  chainWebpack: webpackPlugin,
});