uni-app v3 cli方式app打包subnvu提示找不到文件,hbuildx正常
uni-app v3 cli方式app打包subnvu提示找不到文件,hbuildx正常
操作步骤:
- cli方式和hbuild方式各新建一个默认模板v3/vite项目,hbuild项目可以正常编译,cli项目提示nvue文件找不到
预期结果:
- cli方式可正常编译nvue文件
实际结果:
- cli方式无法正常编译nvue文件
bug描述:
cli方式新建v3&vite项目,增加nvue文件后配置如下:

hbuildx 编译正常:

更多关于uni-app v3 cli方式app打包subnvu提示找不到文件,hbuildx正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
8 回复
更多关于uni-app v3 cli方式app打包subnvu提示找不到文件,hbuildx正常的实战教程也可以访问 https://www.itying.com/category-93-b0.html
感谢回复,这个情况下build也是同样编译不进去,应该不是这个原因
换成把数字换成正常的英文试试看还会不会复现该问题
额。。。没懂
回复 d***@foxmail.com: 已更新回复
回复 HRK_01: 换成英文该问题同样会出现,调试源码后发现需要去掉path中的.nvue后缀,与v2项目有些区别,希望及时更新下文档描述,谢谢
回复 d***@foxmail.com: 好的,十分感谢反馈
在使用 uni-app 进行项目打包时,如果你遇到使用 cli 方式打包时提示找不到文件,而在 HBuilderX 中正常的情况,可能是由于以下几个原因导致的。以下是一些常见的排查步骤和解决方案:
1. 检查项目路径
- 确保你在
cli中执行的路径是正确的,并且项目的根目录下包含src、pages等必要的文件夹。 - 如果你在
HBuilderX中正常打包,但在cli中提示找不到文件,可能是因为cli的工作目录不正确。可以尝试在项目根目录下执行打包命令。
2. 检查 manifest.json 文件
manifest.json文件中可能配置了某些路径,这些路径在cli环境中可能无法正确解析。确保manifest.json文件中的路径配置是正确的。- 特别是
app-plus或mp-weixin等平台的配置,确保路径是相对于项目根目录的。
3. 检查 subNVue 配置
subNVue是uni-app中的一个特殊配置,用于加载原生子页面。确保subNVue的路径配置是正确的,并且在cli环境中能够正确找到这些文件。- 可以在
pages.json中检查subNVue的配置,确保路径是相对于项目根目录的。
4. 检查 cli 版本
- 确保你使用的
uni-app cli版本与HBuilderX中的版本一致。不同版本可能会存在一些兼容性问题。 - 可以通过以下命令检查
cli版本:
如果需要更新vue -Vcli,可以使用:npm install -g @vue/cli
5. 检查文件是否存在
- 确保
cli提示找不到的文件确实存在于项目中。有时文件可能被误删或移动,导致cli无法找到。 - 可以通过在项目根目录下执行以下命令来查找文件:
find . -name "filename"
6. 清理缓存并重新安装依赖
- 有时缓存问题可能会导致文件找不到。可以尝试清理缓存并重新安装依赖:
rm -rf node_modules rm -rf package-lock.json npm cache clean --force npm install
7. 调试 cli 打包过程
- 可以在
cli打包时添加--verbose参数来查看详细的打包日志,帮助定位问题:npm run build:app-plus -- --verbose
8. 检查 subNVue 文件路径
- 确保
subNVue文件的路径在pages.json中配置正确。例如:
确保{ "pages": [ { "path": "pages/index/index", "style": { "navigationBarTitleText": "首页", "subNVue": { "path": "pages/index/subNVue", "type": "popup" } } } ] }path字段的路径是正确的。
9. 检查 cli 配置文件
- 确保
cli的配置文件(如vue.config.js或webpack.config.js)中没有错误的路径配置。
10. 使用 HBuilderX 的 cli 模式
- 如果你仍然无法解决问题,可以尝试使用
HBuilderX的cli模式进行打包。HBuilderX提供了cli工具,可以在命令行中调用:hbx build --platform app-plus


