1.hash
- Type:boolean
- Default:false
配置是否让生成的文件包含 hash 后缀,通常用于增量发布和避免浏览器加载缓存。 启用 hash 后,产物通常是这样,
- dist - logo.sw892d.png - umi.df723s.js - umi.8sd8fw.css - index.html 注:
- html 文件始终没有 hash
打包时根据修改生成不同的后缀,避免浏览器缓存。
开始时
改变hash后
//.umirc.ts
import { defineConfig } from 'umi';
export default defineConfig({
nodeModulesTransform: {
type: 'none',
},
hash:true,
routes: [
{ path: '/', component: '@/pages/index' },
],
fastRefresh: {},
});
2.base
- Type:string
- Default:/
设置路由前缀,通常用于部署到非根目录。 比如,你有路由/和/users,然后设置了 base 为/foo/,那么就可以通过/foo/和/foo/users访问到之前的路由。
import { defineConfig } from 'umi';
export default defineConfig({
nodeModulesTransform: {
type: 'none',
},
hash:true,
//这里部署到admin下面
base:'/admin/',
routes: [
{ path: '/', component: '@/pages/index' },
],
fastRefresh: {},
});
3.publicPath
- Type:publicPath
- Default:/
配置 webpack 的 publicPath。当打包的时候,webpack 会在静态文件路径前面添加publicPath的值,当你需要修改静态文件地址时,比如使用 CDN 部署,把publicPath的值设为 CDN 的值就可以。如果使用一些特殊的文件系统,比如混合开发或者 cordova 等技术,可以尝试将publicPath设置成./相对路径。 相对路径./有一些限制,例如不支持多层路由/foo/bar,只支持单层路径/foo 如果你的应用部署在域名的子路径上,例如https://www.your-app.com/foo/,你需要设置publicPath为/foo/,如果同时要兼顾开发环境正常调试,你可以这样配置:
import { defineConfig } from 'umi';
export default defineConfig({ publicPath: process.env.NODE_ENV === 'production' ? '/foo/' : '/',});
3.1案例
import { defineConfig } from 'umi';
export default defineConfig({
nodeModulesTransform: {
type: 'none',
},
hash:true,
// base:'/admin/',
publicPath:'http://xx.com/cdn/',
routes: [
{ path: '/', component: '@/pages/index' },
],
fastRefresh: {},
});
输入yarn build打包
4.outputPath
修改打包文件夹路径,默认时dist目录
- Type:string
- Default:dist
指定输出路径。
注意:
- 不允许设定为src、public、pages、mock、config等约定目录
import { defineConfig } from 'umi';
export default defineConfig({
nodeModulesTransform: {
type: 'none',
},
outputPath:'builds',
routes: [
{ path: '/', component: '@/pages/index' },
],
fastRefresh: {},
});
5.title
修改窗口标题
- Type:string
- Default:’’
import { defineConfig } from 'umi';
export default defineConfig({
nodeModulesTransform: {
type: 'none',
},
title:'王苏',
outputPath:'builds',
routes: [
{ path: '/', component: '@/pages/index' },
],
fastRefresh: {},
});
6.history
- Type:object
- Default:{type: ‘browser’}
配置history 类型和配置项。
包含以下子配置项:
- type,可选browser、hash和memory
- options,传给 create{{{type}}}History 的配置项,每个类型器的配置项不同
注意,
- options 中,getUserConfirmation由于是函数的格式,暂不支持配置
- options 中,basename无需配置,通过 umi 的base配置指定
6.1 broser
6.2hash
```jsx import { defineConfig } from ‘umi’;
export default defineConfig({ nodeModulesTransform: { type: ‘none’, }, hash:true, title:’王苏’, // base:’/admin/‘, // publicPath:’http://xx.com/cdn/‘, history:{ type: ‘hash’ }, outputPath:’builds’, routes: [ { path: ‘/‘, component: ‘@/pages/index’ }, ], fastRefresh: {}, });
<a name="VZ5tf"></a>
# 7.proxy
- Type:object
- Default:{}
配置代理能力,可以解决跨域问题。
```jsx
import { defineConfig } from 'umi';
export default defineConfig({
nodeModulesTransform: {
type: 'none',
},
history: { type: 'hash' },
outputPath: 'builds',
routes: [{ path: '/', component: '@/pages/index' }],
fastRefresh: {},
//实际访问的是api/student转发到student
proxy: {
'/api': {
target: 'http://jsonplaceholder.typicode.com/',
changeOrigin: true,
pathRewrite: { '^/api': '' },
},
},
});
8.theme
修改less,来修改主题,下图修改颜色
- Type:object
- Default:{}
import { defineConfig } from 'umi';
export default defineConfig({
nodeModulesTransform: {
type: 'none',
},
hash: true,
title: '王苏',
// base:'/admin/',
// publicPath:'http://xx.com/cdn/',
history: { type: 'hash' },
outputPath: 'builds',
routes: [{ path: '/', component: '@/pages/index' }],
fastRefresh: {},
//实际访问的是api/student转发到student
theme: {
'@primary-color': '#1DA57A',
},
});