uni-app Cannot read property 'subpackages' of undefined

uni-app Cannot read property ‘subpackages’ of undefined

开发环境 版本号 项目创建方式
Windows win11 HBuilderX

产品分类:HbuilderX

操作步骤:

  • page.json文件 加东西(路由里边随意加个属性) 不报错, 删东西(比如删个"disableScroll": true)就报错

预期结果:

  • page.json文件 加东西(路由里边随意加个属性) 不报错, 删东西(比如删个"disableScroll": true)就报错

实际结果:

  • page.json文件 加东西(路由里边随意加个属性) 不报错, 删东西(比如删个"disableScroll": true)就报错

bug描述:

今天下午来上班 提示更新 更新完了才有这种情况 以前没遇到过
我只要一改page.json文件 就报错
page.json文件 加东西 不报错 删东西(比如删个"disableScroll": true)报如下错误

17:18:38.318 pages.json解析失败  
17:18:38.318 TypeError: Cannot read property 'subpackages' of undefined  
17:18:38.318     at processPagesJson (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-cli-shared\lib\pages.js:73:17)  
17:18:38.318     at getPagesJson (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-cli-shared\lib\pages.js:38:10)  
17:18:38.334     at parseEntry (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\uni-cli-shared\lib\pages.js:224:17)  
17:18:38.334     at D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\@dcloudio\webpack-uni-mp-loader\lib\plugin\index-new.js:135:13  
17:18:38.334     at SyncHook.eval [as call] (eval at create (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\tapable\lib\HookCodeFactory.js:19:10), <anonymous>:7:1)  
17:18:38.334     at Watchpack.<anonymous> (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\webpack\lib\Watching.js:142:33)  
17:18:38.334     at Object.onceWrapper (events.js:421:26)  
17:18:38.334     at Watchpack.emit (events.js:314:20)  
17:18:38.334     at Watchpack._onChange (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\watchpack\lib\watchpack.js:118:7)  
17:18:38.334     at Watchpack.<anonymous> (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\watchpack\lib\watchpack.js:99:8)  
17:18:38.350     at Watcher.emit (events.js:314:20)  
17:18:38.350     at D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\watchpack\lib\DirectoryWatcher.js:109:7  
17:18:38.350     at Array.forEach (<anonymous>)  
17:18:38.350     at DirectoryWatcher.setFileTime (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\watchpack\lib\DirectoryWatcher.js:108:41)  
17:18:38.350     at DirectoryWatcher.onChange (D:\Program Files\HBuilderX\plugins\uniapp-cli\node_modules\watchpack\lib\DirectoryWatcher.js:264:7)  
17:18:38.350     at FSWatcher.emit (events.js:314:20)
5 回复

我也是这个问题,是不是随便一改哪里保存就报错得重新运行编译


我测了一下 加东西没事 删东西就不行

回复 4***@qq.com: 那还好,我的有改动就不行

我是json里面多加了个逗号导致的

在 uni-app 开发中,如果你遇到 Cannot read property 'subpackages' of undefined 的错误,通常是因为在 pages.json 文件中配置了 subpackages,但配置格式不正确或缺少必要的字段。

可能的原因和解决方法:

  1. subpackages 配置格式错误

    • subpackages 是一个数组,每个子包应该是一个对象,包含 rootpages 字段。
    • 确保 subpackages 的配置格式正确。
    {
      "pages": [
        {
          "path": "pages/index/index",
          "style": {
            "navigationBarTitleText": "首页"
          }
        }
      ],
      "subpackages": [
        {
          "root": "subpackageA",
          "pages": [
            {
              "path": "pageA/pageA",
              "style": {
                "navigationBarTitleText": "子包A"
              }
            }
          ]
        }
      ]
    }
  2. subpackages 配置为空或未定义

    • 如果你没有使用子包功能,确保 subpackages 字段不存在或为空数组。
    • 如果你使用了子包功能,确保 subpackages 字段存在并且配置正确。
    {
      "pages": [
        {
          "path": "pages/index/index",
          "style": {
            "navigationBarTitleText": "首页"
          }
        }
      ],
      "subpackages": []
    }
  3. pages.json 文件格式错误

    • 确保 pages.json 文件是一个有效的 JSON 文件,没有语法错误。
    • 可以使用在线 JSON 校验工具检查 pages.json 文件的格式是否正确。
  4. uni-app 版本问题

    • 如果你使用的是较旧的 uni-app 版本,可能存在一些兼容性问题。尝试升级到最新版本。
    npm update [@dcloudio](/user/dcloudio)/uni-app
  5. 重新编译项目

    • 有时候,修改 pages.json 文件后,可能需要重新编译项目才能生效。尝试重新运行项目。
    npm run dev
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!