umi使用-umirc

.umirc.ts文件内容解析

作为umi框架中最重要的文件之一,.umirc.ts中提供的是一个配置对象;了解此对象的各个key的作用是至关重要的,本文先叙述了.umirc.ts文件的基本框架,然后对暴露出去的配置对象中的常见key逐个介绍。

1. .umirc.ts文件的基本框架

typescript 复制代码
import { defineConfig } from "umi";

export default defineConfig({
    routes: [
        {path: "/", component: "index"},
        {path: "/docs", component: "docs"},
    ],
    npmClient: "yarn",
    metas: [
        {
            name: "version", 
            content: "1.0.0",
        }
    ],
})

2. 配置对象中的其他重要字段

2.1 routes

用来定义应用的路由配置,是一个数组:Record<'path'|'components', string >

2.2 hash

是否给url添加一个哈希路由

2.3 dynamicImport

将应用配置成动态导入的行为

2.3.1 dynamicImport.loading

如果导入的耗时时间长就显示这个字段配置的组件

2.4 ignoreMomentLocale: boolean

针对第三方库moment的优化字段

2.5 proxy

自带的代理,例如:

ts 复制代码
"/api/v1": {
    target: "http://192.168.1.94:9999",
    changeOrigin: true,
}

2.6 meta

为入口文件,即index.html中注入meta信息:

ts 复制代码
metas: [
    {name: "version", content: "1.0.0"},
]

2.7 chainWebpack

可以在此字段中覆盖一些webpack的配置:

ts 复制代码
chainWebpack: (config, {webpack}) => {
    config.merge({...})
}

举个实际的例子,用来修改webpack的optimization配置:

ts 复制代码
  chainWebpack: (config, { webpack }) => {
    config.merge({
      optimization: {
        splitChunks: {
          cacheGroups: {
            commons: {
              name: 'commons',
              chunks: 'initial',
              minChunks: 2,
            },
          },
        },
      },
    });
  },

2.8 authAllowed

用来指定哪些页面不需要权限

ts 复制代码
authAllowed: ['/download'],

2.9 根目录页面

ts 复制代码
    path: '/',
    component: '@/pages/welcome/index.jsx',
相关推荐
C_心欲无痕1 分钟前
Docker 本地部署 SSR 前端项目实战指南
前端·docker·容器
梵得儿SHI11 分钟前
Vue 高级特性:组件高级用法(动态组件、异步组件、组件缓存 keep-alive)
前端·javascript·vue.js·keep-alive·异步组件·动态组件·vue组件高级特性
EndingCoder12 分钟前
泛型类和高级用法
linux·运维·前端·ubuntu·typescript
lili-felicity16 分钟前
React Native for Harmony 数字验证码输入功能
javascript·react native·react.js
ℋᙚᵐⁱᒻᵉ鲸落18 分钟前
【Vue3】Element Plus 表单显示自定义校验错误
前端·javascript·vue.js
程序员小寒19 分钟前
聊一聊 CommonJS 和 ES6 Module
前端·ecmascript·es6
Java后端的Ai之路20 分钟前
【AI应用开发工程师】-Gemini写前端的一个坑
前端·人工智能·gemini·ai应用开发工程师
亿元程序员20 分钟前
最近很火的一个拼图游戏,老板让我用Cocos3.8做一个...
前端
m0_7482500321 分钟前
C++ Web 编程
开发语言·前端·c++
lili-felicity21 分钟前
React Native for Harmony:消息列表页面未读标记完整实现
javascript·react native·react.js