项目配置项
用于修改项目的配色、布局、缓存、多语言、组件默认配置
环境变量配置
项目的环境变量配置位于项目根目录下的 .env、.env.development、.env.production
具体可以参考 Vite 文档
.env # 在所有的环境中被载入.env.local # 在所有的环境中被载入,但会被 git 忽略.env.[mode] # 只在指定的模式中被载入.env.[mode].local # 只在指定的模式中被载入,但会被 git 忽略
::: tip 温馨提醒
只有以
VITE_开头的变量会被嵌入到客户端侧的包中,你可以项目代码中这样访问它们:console.log(import.meta.env.VITE_PROT);
以
VITE_GLOB_*开头的的变量,在打包的时候,会被加入_app.config.js配置文件当中.
:::
配置项说明
.env
所有环境适用
# 端口号VITE_PORT=3100# 网站标题VITE_GLOB_APP_TITLE=Naive Ui Admin# 简称,用于配置文件名字 不要出现空格、数字开头等特殊字符VITE_GLOB_APP_SHORT_NAME=naive_ui_admin
.env.development
开发环境适用
# 是否开启mock数据,关闭时需要自行对接后台接口VITE_USE_MOCK=true# 资源公共路径,需要以 /开头和结尾VITE_PUBLIC_PATH=/# 是否删除Console.logVITE_DROP_CONSOLE=false# 接口地址# 如果没有跨域问题,直接在这里配置即可VITE_GLOB_API_URL=/api# 图片上传地址VITE_GLOB_UPLOAD_URL=/upload# 图片前缀地址VITE_GLOB_IMG_URL=/# 接口前缀VITE_GLOB_API_URL_PREFIX=
::: warning 注意
这里配置的 VITE_PROXY 以及 VITE_GLOB_API_URL, /api 需要是唯一的,不要和接口有的名字冲突
如果你的接口是 http://localhost:3000/api 之类的,请考虑将 VITE_GLOB_API_URL=/xxxx 换成别的名字
:::
.env.production
生产环境适用
# 是否开启mockVITE_USE_MOCK=true# 接口地址 可以由nginx做转发或者直接写实际地址VITE_GLOB_API_URL=/api# 文件上传地址 可以由nginx做转发或者直接写实际地址VITE_GLOB_UPLOAD_URL=/upload# 接口地址前缀,有些系统所有接口地址都有前缀,可以在这里统一加,方便切换VITE_GLOB_API_URL_PREFIX=# 是否删除Console.logVITE_DROP_CONSOLE=true# 资源公共路径,需要以 / 开头和结尾VITE_PUBLIC_PATH=/
生产环境动态配置
说明
当执行yarn build构建项目之后,会自动生成 _app.config.js 文件并插入 index.html。
注意: 开发环境不会生成
// _app.config.js// 变量名命名规则 __PRODUCTION__xxx_CONF__ xxx:为.env配置的VITE_GLOB_APP_SHORT_NAMEwindow.__PRODUCTION__VUE_VBEN_ADMIN__CONF__ = {VITE_GLOB_APP_TITLE: 'Naive Ui Admin',VITE_GLOB_APP_SHORT_NAME: 'naive-ui-admin',VITE_GLOB_API_URL: '/app',VITE_GLOB_API_URL_PREFIX: '/',VITE_GLOB_UPLOAD_URL: '/upload',};
作用
_app.config.js 用于项目在打包后,需要动态修改配置的需求,如接口地址。不用重新进行打包,可在打包后修改 /dist/_app.config.js 内的变量,刷新即可更新代码内的局部变量。
如何获取全局变量
想要获取 _app.config.js 内的变量,可以使用 src/hooks/setting/index.ts 提供的函数来进行获取
如何新增(新增一个可动态修改的配置项)
首先在
.env或者对应的开发环境配置文件内,新增需要可动态配置的变量,需要以VITE_GLOB_开头VITE_GLOB_开头的变量会自动加入环境变量,通过在src/types/config.d.ts内修改GlobEnvConfig和GlobConfig两个环境变量的值来定义新添加的类型useGlobSetting 函数中添加刚新增的返回值即可
const {VITE_GLOB_APP_TITLE,VITE_GLOB_API_URL,VITE_GLOB_APP_SHORT_NAME,VITE_GLOB_API_URL_PREFIX,VITE_GLOB_UPLOAD_URL,} = ENV;export const useGlobSetting = (): SettingWrap => {// Take global configurationconst glob: Readonly<GlobConfig> = {title: VITE_GLOB_APP_TITLE,apiUrl: VITE_GLOB_API_URL,shortName: VITE_GLOB_APP_SHORT_NAME,urlPrefix: VITE_GLOB_API_URL_PREFIX,uploadUrl: VITE_GLOB_UPLOAD_URL};return glob as Readonly<GlobConfig>;};
项目配置
::: warning
项目配置文件用于配置项目内展示的内容、布局、文本等效果,该配置,暂时没有存于localStorage中。刷新则恢复初始值。
:::
src/settings/projectSetting.ts
const setting = {//导航模式 vertical 左侧菜单模式 horizontal 顶部菜单模式navMode: 'vertical',//导航风格 dark 暗色侧边栏 light 白色侧边栏 header-dark 暗色顶栏navTheme: 'dark',//顶部headerSetting: {//背景色bgColor: '#fff',//固定顶部fixed: true,//显示重载按钮isReload: true,},//页脚showFooter: true,//多标签multiTabsSetting: {//背景色bgColor: '#fff',//是否显示show: true,//固定多标签fixed: true,},//菜单menuSetting: {//最小宽度minMenuWidth: 64,//菜单宽度menuWidth: 200,//固定菜单fixed: true,},//面包屑crumbsSetting: {//是否显示show: true,//显示图标showIcon: false,},//菜单权限模式 FIXED 前端固定路由 BACK 动态获取permissionMode: 'FIXED',};export default setting;
组件配置
src/settings/componentSetting.ts
export default {table: {apiSetting: {// 当前页的字段名pageField: 'page',// 每页数量字段名sizeField: 'pageSize',// 接口返回的数据字段名listField: 'list',// 接口返回总页数字段名totalField: 'pageCount',},//默认分页数量defaultPageSize: 10,//可切换每页数量集合pageSizes: [10, 20, 30, 40, 50],},upload: {//考虑接口规范不同apiSetting: {// 集合字段名infoField: 'data',// 图片地址字段名imgField: 'photo',},//最大上传图片大小maxSize: 2,//图片上传类型fileType: ['image/png', 'image/jpg', 'image/jpeg', 'image/gif', 'image/svg+xml'],},};
主题配置
// app theme preset colorexport const appThemeList: string[] = ['#2d8cf0','#0960bd','#0084f4','#009688','#536dfe','#ff5c93','#ee4f12','#0096c7','#9c27b0','#ff9800','#FF3D68','#00C1D4','#71EFA3','#171010','#78DEC7','#1768AC','#FB9300','#FC5404',];const setting = {//深色主题darkTheme: false,//系统主题色appTheme: '#2d8cf0',//系统内置主题色列表appThemeList,};export default setting;
