Files
Review-procedure/config/plugins/fix-tabbar-list.js
2026-02-07 16:07:10 +08:00

80 lines
2.5 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/**
* Taro 插件:修复 tabBar.list
* 确保即使使用自定义 tabBar也保留 list 配置
*/
module.exports = (ctx) => {
return {
name: 'fix-tabbar-list',
// 修改 app 配置
modifyAppConfig(config) {
// 确保 tabBar.list 存在
if (config.tabBar && !config.tabBar.list) {
config.tabBar.list = [
{
pagePath: 'pages/home/index',
text: '首页',
iconPath: 'assets/tabbar/home.png',
selectedIconPath: 'assets/tabbar/home-active.png'
},
{
pagePath: 'pages/check/index',
text: '质检',
iconPath: 'assets/tabbar/check.png',
selectedIconPath: 'assets/tabbar/check-active.png'
},
{
pagePath: 'pages/personnel/index',
text: '人员',
iconPath: 'assets/tabbar/personnel.png',
selectedIconPath: 'assets/tabbar/personnel-active.png'
}
]
}
return config
},
// 编译完成后再次检查(双重保险)
onBuildFinish() {
const fs = require('fs')
const path = require('path')
const appJsonPath = path.join(ctx.paths.outputPath, 'app.json')
if (fs.existsSync(appJsonPath)) {
try {
const appJson = JSON.parse(fs.readFileSync(appJsonPath, 'utf8'))
// 如果 tabBar 存在但没有 list添加 list
if (appJson.tabBar && !appJson.tabBar.list) {
appJson.tabBar.list = [
{
pagePath: 'pages/home/index',
text: '首页',
iconPath: 'assets/tabbar/home.png',
selectedIconPath: 'assets/tabbar/home-active.png'
},
{
pagePath: 'pages/check/index',
text: '质检',
iconPath: 'assets/tabbar/check.png',
selectedIconPath: 'assets/tabbar/check-active.png'
},
{
pagePath: 'pages/personnel/index',
text: '人员',
iconPath: 'assets/tabbar/personnel.png',
selectedIconPath: 'assets/tabbar/personnel-active.png'
}
]
fs.writeFileSync(appJsonPath, JSON.stringify(appJson, null, 2), 'utf8')
console.log('✅ [fix-tabbar-list] 已修复 dist/app.json 中的 tabBar.list')
}
} catch (error) {
console.error('❌ [fix-tabbar-list] 修复失败:', error)
}
}
}
}
}