vben开发入门8:preferences.ts
这篇文章介绍了如何通过 preferences.ts 配置文件自定义项目设置。该文件使用 defineOverridesPreferences 函数来覆盖部分默认配置,主要功能是将应用名称设置为环境变量 VITE_APP_TITLE 的值(如"精简后的页面")。配置修改后需要清空浏览器缓存才能生效。开发者可以在此扩展配置,如设置默认主题、语言等,未覆盖的配置将自动采用框架默认值
·
页面位置

引用位置

代码分析
import { defineOverridesPreferences } from '@vben/preferences';
作用:
从框架里导入一个类型辅助函数,用来帮你规范地写自定义配置。
/**
* @description 项目配置文件
* 只需要覆盖项目中的一部分配置,不需要的配置不用覆盖,会自动使用默认配置
* !!! 更改配置后请清空缓存,否则可能不生效
*/
注释说明:
- 这个文件是项目配置覆盖文件
- 你只写你想改的配置,不改的自动用框架默认值
- 改完必须清空浏览器缓存才生效
export const overridesPreferences = defineOverridesPreferences({
// 自定义覆盖配置
app: {
name: import.meta.env.VITE_APP_TITLE,
},
});
核心代码:
- 导出一个配置对象
overridesPreferences - 只覆盖了 app.name(应用名称)
- 值取自 .env 文件里的
VITE_APP_TITLE
也就是你之前看到的:精简后的页面
小结
- preferences.ts = 项目自定义偏好配置
- 它只覆盖一小部分配置,其他全部用框架默认
- 这里只做了一件事:把系统名称设置为环境变量里的标题
它和 main.ts 的关系
main.ts里调用了initPreferences- 初始化时会把这个文件的配置合并进去
- 最终生效的配置 = 框架默认 + 你的自定义覆盖
你可以在这里改什么?



也可以在app上按ctrl+B,到如下位置
点击 AppPreferences ,继续按ctrl+B,到这里
这个接口内容如下
interface AppPreferences {
/** 权限模式 */
accessMode: AccessModeType;
/** 登录注册页面布局 */
authPageLayout: AuthPageLayoutType;
/** 检查更新轮询时间 */
checkUpdatesInterval: number;
/** 是否开启灰色模式 */
colorGrayMode: boolean;
/** 是否开启色弱模式 */
colorWeakMode: boolean;
/** 是否开启紧凑模式 */
compact: boolean;
/** 是否开启内容紧凑模式 */
contentCompact: ContentCompactType;
/** 内容紧凑宽度 */
contentCompactWidth: number;
/** 内容内边距 */
contentPadding: number;
/** 内容底部内边距 */
contentPaddingBottom: number;
/** 内容左侧内边距 */
contentPaddingLeft: number;
/** 内容右侧内边距 */
contentPaddingRight: number;
/** 内容顶部内边距 */
contentPaddingTop: number;
// /** 应用默认头像 */
defaultAvatar: string;
/** 默认首页地址 */
defaultHomePath: string;
// /** 开启动态标题 */
dynamicTitle: boolean;
/** 是否开启检查更新 */
enableCheckUpdates: boolean;
/** 是否显示复制偏好设置按钮 */
enableCopyPreferences: boolean;
/** 是否显示偏好设置 */
enablePreferences: boolean;
/**
* @zh_CN 是否开启refreshToken
*/
enableRefreshToken: boolean;
/**
* @zh_CN 是否开启首选项导航栏吸顶效果
*/
enableStickyPreferencesNavigationBar: boolean;
/** 是否移动端 */
isMobile: boolean;
/** 布局方式 */
layout: LayoutType;
/** 支持的语言 */
locale: SupportedLanguagesType;
/** 登录过期模式 */
loginExpiredMode: LoginExpiredModeType;
/** 应用名 */
name: string;
/** 偏好设置按钮位置 */
preferencesButtonPosition: PreferencesButtonPositionType;
/**
* @zh_CN 是否开启水印
*/
watermark: boolean;
/**
* @zh_CN 水印文案
*/
watermarkContent: string;
/** z-index */
zIndex: number;
}
你以后可以在这里加:
app: {
name: import.meta.env.VITE_APP_TITLE,
locale:'en-US',
watermark: true,
watermarkContent: 'this is a test'
}
改完
在无痕窗口中,打开页面,你会发现页面变成英文的了。
登录后,页面加上了水印。
其他的,如果有需求,自行添加。
总结
这个文件超级简单,作用只有一个:用环境变量统一设置系统标题,
其他所有主题、布局、颜色、菜单配置都用框架默认值。
更多推荐



所有评论(0)