依赖分析扫描流程
当 weapp-vite 启动构建或监听时,会先确定哪些文件属于入口,然后递归分析它们之间的引用关系。理解这一流程有助于调试“页面没有被构建”“组件样式缺失”等问题。本页以文字和示意图梳理扫描逻辑,方便贡献者和高级用户参考。
入口类型判定
- 应用入口(App)
- 同时存在
app.js与app.json。 app.json中的pages、subPackages、usingComponents会作为后续扫描起点。
- 同时存在
- 页面入口(Page)
- 必须匹配
page.js/.ts与同名page.wxml。 - 若存在
page.json与page.wxss会一并纳入构建。
- 必须匹配
- 组件入口(Component)
- 需要具备
.js/.ts、.wxml、.json三个文件。 - 且
json.component === true才会被视为自定义组件。
- 需要具备
- WXML 片段(Fragment)
- 通过
import/include引入的.wxml文件。 - 若未被自动发现,可借助
weapp.isAdditionalWxml手动纳入。
- 通过
引用边与递归规则
- App → Page:来自
app.json.pages。 - App → Component:来自
app.json.usingComponents。 - App → SubPackage:来自
app.json.subPackages。(分包内再递归页面与组件。) - Page → Component:来自页面
json的usingComponents。 - Component → 子组件:同样来自组件
json的usingComponents。
weapp-vite 使用静态分析完成上述递归,因此运行时动态拼接的路径不会被自动识别。
调试建议
- 确认入口是否完整:缺少
.json或json.component === true会导致节点被跳过。 - 关注静态路径:尽量避免在运行时拼接
import路径;若必须使用,结合isAdditionalWxml或自定义脚本补充产物。 - 结合
weapp.debug:使用watchFiles、resolveId查看是否扫描到对应文件,快速定位异常。