dcloudio / dcloudio/uni-app

node_modules中的page注册到pages.json,运行到微信后微信IDE提示无法找到对应页面的wxml文件

Open
#2,193 2 comments 0 reactions 0 assignees View on GitHub
mp-weixin 提供了复现方案
Dominant language
JavaScript
Stars
41.6k
Forks
3.7k
Avg merge
7h 6m
Merged PRs (30d)
6

Description

**问题描述**
需要引入 `node_modules` 中的page使用,在 `pages.json` 中添加这个页面的路由,编译成功,微信IDE调试器提示
```
[ app.json 文件内容错误] app.json: 未找到 ["pages"][1] 对应的 node_modules/@pc/pc-login/src/pages/protocolWebView/protocolWebView.wxml 文件
```

**复现步骤**
1、创建空白的新Uni-app项目
2、`npm install`
3、修改 `pages.json` ,链接至node_modules中对应页面
```
{
"pages": [{
"path": "pages/index/index",
"style": {
"navigationBarTitleText": "uni-app"
}
}, {
"path": "node_modules/@pc/pc-login/src/pages/protocolWebView/protocolWebView",
"style": {
"navigationBarTitleText": "login"
}
}],
"globalStyle": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
}
}
```
4、编译并运行

**预期结果**
能通过 `uni.navigateTo` 跳转到 `node_modules` 中的页面,并正常展示

**实际结果**
Uni-app对于 `node_modules` 的内容会自动改为 `node-modules` ,这个文件夹里 page 编译出来的产物都似乎是正确的,但是`node_modules` 文件夹中也有对应页面的编译产物,且连续几次测试编译运行都不能保证 `.js`、`.wxss`、`.wxml`、`.json` 4个文件齐全,即使 `node_modules` 齐全也会报 `wxml` 错
另外,微信的页面路由app.json里路径依旧显示的是 `node_modules`,手动修改为 `node-modules` 后微信编译通过,但是跳转失败
```
{
"pages": [
"pages/index/index",
"node_modules/@pc/pc-login/src/pages/protocolWebView/protocolWebView",
],
"subPackages": [],
"window": {
"navigationBarTextStyle": "black",
"navigationBarTitleText": "uni-app",
"navigationBarBackgroundColor": "#F8F8F8",
"backgroundColor": "#F8F8F8"
},
"permission": {},
"usingComponents": {}
}
```

**系统信息:**
- 发行平台: 微信开发者工具Stable1.03.2009140
- 操作系统 macOS 10.15.6
- HBuilderX版本 2.9.3.20201014
- uni-app版本 [如使用Vue-cli创建/运行项目,则提供`npm run info`的运行结果]
- 设备信息 微信开发者工具模拟器

**补充信息**
[可选]
[根据你的分析,出现这个问题的原因可能在哪里?]
猜测是路径问题,但是改了路径还是跳不了,是否pages.json里面不允许非 `pages/` 文件夹的页面?

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.