# v1.1.2 不兼容更新

# 本次更新带来性能的优势

# 生产环境

项目 小于等于 v1.1.1 版本 v1.1.2
首页 4.4MB 1.8MB
控制台 4.5MB 3.1MB
会员中心 4.3MB 2.9MB

注:vue1.1MBecharts1.0MB(未压缩)

# 开发环境

项目 小于等于 v1.1.1 版本 v1.1.2
首页 11.5MB 4.5MB
控制台 11.2MB 8.0MB
会员中心 11.2MB 7.1MB

# 语言包不兼容

新版本的语言包将根据当前路由的 pathname 自动按需载入,有以下注意事项:

# 按需加载后,就不能随心使用任意语言包了,请确保页面使用的语言翻译已经被加载

比如当前语言为zh-cn,用户访问path/admin/user/user的页面,视图组件为/@/views/backend/user/user/index.vue,在视图组件及其子组件内

// 全局语言包可用(/@/lang/globs-zh-cn.ts)
t("state")

// 后台公共语言包可用(/@/lang/backend/zh-cn.ts)
t("layouts.default")

// 按需加载的语言包可用(/@/lang/backend/zh-cn/user/user.ts)
t("user.user.nickname")

// 其他语言包都不可以使用
t("user.group.jurisdiction")

若您可能混乱的使用了语言翻译,建议您在更新完成后,打开可能涉及的页面查看浏览器开发者工具的控制台是否有语言翻译key找不到的警告。

# 废弃/@/lang/pages目录

在您执行git pull后,可能看见类似这样的冲突CONFLICT (file location): web/src/lang/pages/en/testBuild.ts added in HEAD inside a directory that was renamed in 43bf5, suggesting it should perhaps be moved to web/src/lang/backend/en/testBuild.ts.

以上信息中,git建议您将文件从/@/lang/pages移动到/@/lang/backend,但通常情况下,冲突文件已经自动移动好,只需手动add、commit即可,移动后的文件即可自动按需加载;同时,在一些版本管理软件中,可能提示以上冲突的/@/lang/pages文件找不到了,这是正常的,您只需确定在/@/lang/backend中存在该文件即可。

# 控制台警告

更新后,您的浏览器控制台内可能出现警告消息:从 BuildAdmin v1.1.2 版本开始,已经可以实现语言包的按需加载...,请参考下表对文件进行移动以实现语言包按需加载

快速理解,例如:后台页面/admin/testBuild的语言包位于/@/lang/pages/zh-cn/testBuild移动至/@/lang/backend/zh-cn/testBuild即可,pages变成了backend

目录/文件 说明
/@/lang/backend 存放后台语言包文件
/@/lang/frontend 存放前台语言包文件
/@/lang/common 存放公共语言包文件
/@/lang/backend/globs-zh-cn.ts 全局公共语言翻译(中文)
/@/lang/backend/globs-en.ts 全局公共语言翻译(英文)
/@/lang/backend/zh-cn.ts 后台公共语言翻译(中文)
/@/lang/backend/en.ts 后台公共语言翻译(英文)
/@/lang/frontend/zh-cn.ts 前台公共语言翻译(中文)
/@/lang/frontend/en.ts 前台公共语言翻译(英文)

通常情况下,直接将目录整个移动到对应位置,以下给出一些例子,主要需要保证的是:系统通过路由的pathname能够按需的加载到对应的语言包文件

目录/文件 路由path 移动至 备注
/@/lang/pages/zh-cn/sms/目录 /admin/sms/* /@/lang/backend/zh-cn/sms/目录 放入后台目录即可
/@/lang/pages/en/sms/目录 /admin/sms/* /@/lang/backend/en/sms/目录
/@/lang/pages/zh-cn/404.ts 404页面语言包 /@/lang/common/zh-cn/404.ts 放入公共目录全局加载
/@/lang/pages/zh-cn/terminal.ts 终端的语言包,无单独路由 /@/lang/backend/zh-cn.ts 放入后台公共语言包

作为最后的解决方案,您可以将所有难以调整的语言包放入/@/lang/common文件夹,它的功能与原pages一致,会被全局加载,前后台任意页面均可使用。

# 文件重命名

文件重命名的操作通常由git自动完成,无需您关注,此处仅提醒(有冲突的情况除外)。

我们新建了mixins组件,并将所有的mixins代码放入其中,以对混入代码进行统一管理;PS:混入代码最典型的例子是:您安装云存储模块时,会被自动覆盖的/src/components/baInput/components\baUpload.ts文件。

rename web/src/components/{baInput/components => mixins}/baUpload.ts
rename web/src/{layouts/common => components}/mixins/loginFooter.vue
rename web/src/{layouts/common => components}/mixins/loginMounted.ts
rename web/src/{layouts/common => components}/mixins/userMounted.ts
rename web/src/{layouts/common => components}/mixins/userProfile.vue