const FOOD_ASSET_NAMES = new Set([ 'apple.jpg', 'banana.jpg', 'blackCoffee.jpg', 'broccoli.jpg', 'brownRice.jpg', 'camel.jpg', 'celery.jpg', 'centuryCongee.jpg', 'chicken.jpg', 'coffee.jpg', 'congee.jpg', 'corn.jpg', 'cucumber.jpg', 'egg.jpg', 'eightCongee.jpg', 'grainMantou.jpg', 'greenBean.jpg', 'lettuce.jpg', 'mango.jpg', 'milk.jpg', 'milkTea.jpg', 'milletCongee.jpg', 'mushroom.jpg', 'noodleSoup.jpg', 'onion.jpg', 'orangeJuice.jpg', 'pepper.jpg', 'pineapple.jpg', 'potato.jpg', 'riceNoodleSoup.jpg', 'shrimp.jpg', 'soda.jpg', 'strawberry.jpg', 'taro.jpg', 'tea.jpg', 'tomato.jpg', 'udon.jpg', 'wonton.jpg' ]) /** * 让游戏食品图进入 tongji 分包,避免增加微信小程序主包体积。 * 迁移到其他 uni-app 项目时,在 vite.config 中复用此函数即可。 */ export function endlessGameAssetFileNames(assetInfo = {}) { const candidates = [ assetInfo.name, ...(assetInfo.names || []), assetInfo.originalFileName, ...(assetInfo.originalFileNames || []) ].filter(Boolean) const isEndlessFood = candidates.some((value) => { const normalized = String(value).replace(/\\/g, '/') const basename = normalized.split('/').pop() return normalized.includes('tongji/endless-game/assets/food/') || FOOD_ASSET_NAMES.has(basename) }) return isEndlessFood ? 'tongji/endless-game/assets/food/[name].[hash][extname]' : 'assets/[name].[hash][extname]' }