Browse Source

修复moules.json5文件无法自动注册路由表bug

chenritian 1 month ago
parent
commit
9fc929f72e

+ 1 - 0
commons/basic/src/main/module.json5

@@ -1,5 +1,6 @@
 {
   "module": {
+    "routerMap": "$profile:router_map",
     "name": "basic",
     "type": "shared",
     "description": "$string:shared_desc",

+ 0 - 16
features/feature/src/main/ets/pages/ChaoYiPage.ets

@@ -1,16 +0,0 @@
-import { RouterPage } from 'basic';
-
-@Component
-@RouterPage
-struct ChaoYiPage {
-  build() {
-
-  }
-}
-
-
-
-@Builder
-function ChaoYiBuilder() {
-  ChaoYiPage()
-}

+ 0 - 13
features/feature/src/main/ets/pages/HelloPage.ets

@@ -1,13 +0,0 @@
-import { RouterPage } from 'basic';
-
-@Component
-@RouterPage
-struct HelloPage {
-  build() {
-
-  }
-}
-@Builder
-function HelloBuilder() {
-  HelloPage()
-}

+ 20 - 0
features/feature/src/main/ets/pages/TestRouterPage.ets

@@ -0,0 +1,20 @@
+import { RouterPage } from 'basic'
+
+@Component
+@RouterPage
+struct TestRouterPage {
+  build() {
+    NavDestination(){
+      Column(){
+        Text('你好路由')
+      }
+      .width('100%')
+      .height('100%')
+    }
+    .hideTitleBar(true)
+  }
+}
+@Builder
+function TestRouterBuilder() {
+  TestRouterPage()
+}

+ 5 - 1
features/feature/src/main/ets/view/MainView.ets

@@ -1,4 +1,4 @@
-import { BackgroundPageModifier, DateOption, YTAddressSelectorDialog, YTDateUtil } from 'basic'
+import { BackgroundPageModifier, DateOption, YTAddressSelectorDialog, YTDateUtil, yTRouter } from 'basic'
 import { UnitType } from 'basic/src/main/ets/datepicker/DatePickerEnums'
 import { promptAction } from '@kit.ArkUI'
 
@@ -36,6 +36,10 @@ export struct MainView {
           }
           yTDateDialog.show(dateOption) //设置好配置之后打开日历的函数
         })
+      Button('跳转页面测试')
+        .onClick(()=>{
+          yTRouter.pushPathByName('TestRouterPage',null)
+        })
     }
     .attributeModifier(new BackgroundPageModifier(true))
 

+ 1 - 0
features/feature/src/main/module.json5

@@ -1,5 +1,6 @@
 {
   "module": {
+    "routerMap": "$profile:router_map",
     "name": "feature",
     "type": "shared",
     "description": "$string:shared_desc",

+ 3 - 8
features/feature/src/main/resources/base/profile/router_map.json

@@ -1,14 +1,9 @@
 {
   "routerMap": [
     {
-      "name": "ChaoYiPage",
-      "pageSourceFile": "src/main/ets/pages/ChaoYiPage.ets",
-      "buildFunction": "ChaoYiBuilder"
-    },
-    {
-      "name": "HelloPage",
-      "pageSourceFile": "src/main/ets/pages/HelloPage.ets",
-      "buildFunction": "HelloBuilder"
+      "name": "TestRouterPage",
+      "pageSourceFile": "src/main/ets/pages/TestRouterPage.ets",
+      "buildFunction": "TestRouterBuilder"
     }
   ]
 }

+ 7 - 13
hvigorfile.ts

@@ -10,7 +10,7 @@ function customPlugin(): HvigorPlugin {
         apply(node: HvigorNode) {
             try {
 
-                console.log('node', JSON.stringify(node))
+                // console.log('node', JSON.stringify(node))
                 // 根据node对象结构获取项目路径
                 const projectPath = node.nodeDir.filePath;
                 console.log('目标路径:', projectPath);
@@ -166,14 +166,14 @@ function customPlugin(): HvigorPlugin {
                     if (fs.existsSync(moduleJsonPath)) {
                         const moduleJsonContent = fs.readFileSync(moduleJsonPath, 'utf8');
 
-                        // 使用正则表达式在"type": "entry"后添加routerMap字段
-                        if (moduleJsonContent.includes('"name"')) {
+                        // 使用正则表达式在"module": {后添加routerMap字段
+                        if (moduleJsonContent.includes('"module"')) {
                             // 检查是否已经存在routerMap字段
                             if (!moduleJsonContent.includes('"routerMap"')) {
-                                // 在"type": "entry"后添加routerMap字段
+                                // 在"module": {后添加routerMap字段
                                 const updatedContent = moduleJsonContent.replace(
-                                    /("type":\s*"entry"[,\s\n\r]*)/,
-                                    '$1"routerMap": "$profile:router_map",\n    '
+                                    /("module"\s*:\s*{)/,
+                                    '$1\n    "routerMap": "$profile:router_map",'
                                 );
 
                                 fs.writeFileSync(moduleJsonPath, updatedContent, 'utf8');
@@ -182,7 +182,7 @@ function customPlugin(): HvigorPlugin {
                                 console.log('module.json5中已存在routerMap字段');
                             }
                         } else {
-                            console.log('module.json5中未找到"name": "entry"');
+                            console.log('module.json5中未找到"module"字段');
                         }
                     } else {
                         console.log('module.json5文件不存在');
@@ -199,12 +199,6 @@ function customPlugin(): HvigorPlugin {
     }
 }
 
-
-
-
-
-
-
 export default {
     system: appTasks,  /* Built-in plugin of Hvigor. It cannot be modified. */
     plugins: [