in packages/plugin-miniapp/src/helper/utils.ts [222:254]
export function resolveMainFilePath(p: string, extArrs = SCRIPT_EXT): string {
if (p.startsWith('pages/') || p === 'app.config') {
return p;
}
const realPath = p;
const taroEnv = process.env.TARO_ENV;
for (let i = 0; i < extArrs.length; i++) {
const item = extArrs[i];
if (taroEnv) {
if (fs.existsSync(`${p}.${taroEnv}${item}`)) {
return `${p}.${taroEnv}${item}`;
}
if (fs.existsSync(`${p}${path.sep}index.${taroEnv}${item}`)) {
return `${p}${path.sep}index.${taroEnv}${item}`;
}
if (fs.existsSync(`${p.replace(/\/index$/, `.${taroEnv}/index`)}${item}`)) {
return `${p.replace(/\/index$/, `.${taroEnv}/index`)}${item}`;
}
}
if (fs.existsSync(`${p}${item}`)) {
return `${p}${item}`;
}
if (fs.existsSync(`${p}${path.sep}index${item}`)) {
return `${p}${path.sep}index${item}`;
}
}
// 存在多端页面但是对应的多端页面配置不存在时,使用该页面默认配置
if (taroEnv && path.parse(p).base.endsWith(`.${taroEnv}.config`)) {
const idx = p.lastIndexOf(`.${taroEnv}.config`);
return resolveMainFilePath(`${p.slice(0, idx)}.config`);
}
return realPath;
}