80 lines
2.5 KiB
JavaScript
80 lines
2.5 KiB
JavaScript
/**
|
||
* 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)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|