2.1.3 • Published 2 years ago

build-plugin-ice-router v2.1.3

Weekly downloads
201
License
MIT
Repository
github
Last release
2 years ago

plugin-ice-router

Router for icejs.

支持约定式路由和配置式路由,如果 src/routes.[ts|js] 文件或者 build.json 里配置的 configFile 对应文件存在,则使用配置式路由,否则使用约定式路由。

Agreement router

build options

build.json:

{
  "router": {
    "ignorePaths": ["stores", "components"]
  }
}

options:

  • caseSensitive: type boolean, default value false, route path generated by plugin will be case sensitive according to project directory
  • ignoreRoutes: type string[], default value [], routes configurated will not be generated
  • ignorePaths: type string[], default value ['components'], ignore every path include components dir

runtime options

src/app.ts:

import { runApp } from 'ice'

const appConfig = {
  router: {
    type: 'browser',
    basename: '/seller',
    modifyRoutes: (routes) => {
      return routes;
    }
  }
};

runApp(appConfig);

generate rules

基础路由

根据 src/pages 内目录结构,自动生成路由配置,如 src/pages/app/home.tsx 会生成路由 /app/home

目录结构为:

src/pages
└── About
    └── index.tsx
└── Dashboard
    ├── a.tsx
    └── b.tsx

生成路由配置如下:

[
  {
    path: '/dashboard',
    exact: true,
    component: PageDashboard
  },
  {
    path: '/home/a',
    exact: true,
    component: PageHomeA
  },
  {
    path: '/home/b',
    exact: true,
    component: PageHomeB
  }
]

嵌套路由

约定文件名为 _layout.jsx|tsx 时,会产生一个嵌套路由,当前目录和子目录均为子路由

目录结构为:

src/pages
└── About
    ├── _layout.tsx
    ├── a.tsx
    └── b.tsx
└── Dashboard
    └── index.tsx

生成路由配置如下:

[
  {
    path: '/about',
    exact: false,
    component: LayoutAbout,
    children: [
      {
        path: '/a',
        exact: true,
        component: PageAboutA
      },
      {
        path: '/b',
        exact: true,
        component: PageAboutB
      },
    ],
  },
  {
    path: '/dashboard',
    exact: true,
    component: PageDashboard
  }
]

动态路由

  • 路径中$作为文件夹或文件名的首个字符,标识一个动态路由,如 src/pages/app/$uid.tsx 会生成路由 /app/:uid
  • 路径中文件夹或文件名的首个和最后一个字符同时为$,标识一个可选的动态路由,如 src/pages/app/$uid$.tsx 会生成路由 /app/:uid?

目录结构为:

src/pages
└── repo
    ├── $pid.tsx
    └── index.tsx
└── $uid$.tsx

生成路由配置如下:

[
  {
    path: '/repo/:pid',
    exact: true,
    component: PageRepo$pid
  },
  {
    path: '/repo',
    exact: true,
    component: PageRepo
  },
  {
    path: '/:uid?',
    exact: true,
    component: Page$uid$
  }
]

Global Layout

如果 src/layouts/index.[jsx|tsx] 文件存在,则将它默认作为全局 layout

404 Routing

如果 src/pages/404.[jsx|tsx] 或者 src/pages/404/index.[jsx|tsx] 文件存在,则将它作为 404 页面

Config router

build options

build.json:

{
  "router": {
    // ...options
  }
}

options:

  • configPath: type string, default src/routes.[ts|js]

runtime options

Ref: Agreement router -> runtime options

Routes config

Support infinite nesting:

// src/routes.ts
import UserLayout from '@/layouts/UserLayout';
import Home from '@/pages/Home';
import UserLogin from '@/pages/UserLogin';
import UserRegistry from '@/pages/UserRegistry';
import NotFound from '@/pages/NotFound';

const routes = [
  {
    path: '/',
    component: Home
  },
  {
    path: '/user',
    component: UserLayout,
    children: [{
      path: '/login',
      exact: true,
      component: UserLogin
    }, {
      path: '/registry',
      component: UserRegistry
    }, {
      path: '/',
      redirect: '/user/login'
    }]
  },
  {
    component: NotFound
  }
];

export default routes;
2.1.3-beta.1

2 years ago

2.1.2-beta.8

2 years ago

2.1.2-beta.7

2 years ago

2.1.2-beta.6

2 years ago

2.1.2

2 years ago

2.1.3

2 years ago

2.1.2-beta.1

2 years ago

2.1.0-beta.1

2 years ago

2.1.0-beta.2

2 years ago

2.1.2-beta.5

2 years ago

2.1.2-beta.4

2 years ago

2.1.2-beta.3

2 years ago

2.1.2-beta.2

2 years ago

2.1.1

2 years ago

2.1.0

2 years ago

2.1.1-beta.1

2 years ago

2.1.1-beta.2

2 years ago

2.1.1-beta.3

2 years ago

2.0.4-beta.1

2 years ago

2.0.2-beta.1

2 years ago

2.0.2-beta.2

2 years ago

2.0.2-beta.3

2 years ago

2.0.2-beta.4

2 years ago

2.0.2-beta.5

2 years ago

2.0.3

2 years ago

2.0.2

2 years ago

2.0.4

2 years ago

2.0.1-beta.2

3 years ago

2.0.1-beta.3

3 years ago

2.0.1-beta.1

3 years ago

2.0.1

3 years ago

2.0.0

3 years ago

2.0.0-rc.4

3 years ago

2.0.0-rc.5

3 years ago

2.0.0-rc.3

3 years ago

2.0.0-rc.2

3 years ago

2.0.0-next.20

3 years ago

2.0.0-next.21

3 years ago

2.0.0-next.22

3 years ago

2.0.0-next.23

3 years ago

2.0.0-rc.1

3 years ago

2.0.0-next.18

3 years ago

2.0.0-next.19

3 years ago

2.0.0-next.17

3 years ago

2.0.0-next.15

3 years ago

2.0.0-next.16

3 years ago

2.0.0-next.14

3 years ago

2.0.0-next.11

3 years ago

2.0.0-next.12

3 years ago

2.0.0-next.13

3 years ago

2.0.0-next.9

3 years ago

2.0.0-next.10

3 years ago

2.0.0-next.8

3 years ago

2.0.0-next.6

3 years ago

2.0.0-next.7

3 years ago

2.0.0-next.5

3 years ago

2.0.0-next.4

3 years ago

2.0.0-next.2

3 years ago

2.0.0-next.3

3 years ago

2.0.0-next.1

3 years ago

1.9.7

3 years ago

1.9.7-beta.1

3 years ago

2.0.0-beta.1

3 years ago

1.9.6

3 years ago

1.9.6-beta.1

3 years ago

1.9.5

3 years ago

1.9.5-beta.2

3 years ago

1.9.5-beta.1

3 years ago

1.9.4-beta.1

3 years ago

1.9.4

3 years ago

1.9.3

3 years ago

1.9.3-beta.2

3 years ago

1.9.3-beta.1

3 years ago

1.9.2

3 years ago

1.9.2-beta.2

3 years ago

1.9.2-beta.3

3 years ago

1.9.2-beta.1

3 years ago

1.9.1

3 years ago

1.9.1-beta.2

3 years ago

1.9.1-beta.1

3 years ago

1.9.0

3 years ago

1.9.0-beta.3

3 years ago

1.9.0-beta.2

3 years ago

1.9.0-beta.1

3 years ago

1.8.0

3 years ago

1.8.0-beta.1

3 years ago

1.7.6

3 years ago

1.7.6-beta.5

3 years ago

1.7.6-beta.4

3 years ago

1.7.6-beta.3

3 years ago

1.7.6-beta.2

3 years ago

1.7.6-beta.1

3 years ago

1.7.5

4 years ago

1.7.5-1

4 years ago

1.7.5-0

4 years ago

1.7.4

4 years ago

1.7.4-2

4 years ago

1.7.4-1

4 years ago

1.7.4-0

4 years ago

1.7.3

4 years ago

1.7.3-0

4 years ago

1.7.2

4 years ago

1.7.1

4 years ago

1.7.1-0

4 years ago

1.7.0

4 years ago

1.7.0-0

4 years ago

1.6.4-alpha.0

4 years ago

1.6.3

4 years ago

1.6.3-alpha.1

4 years ago

1.6.3-alpha.0

4 years ago

1.6.2

4 years ago

1.6.2-alpha.0

4 years ago

1.6.1

4 years ago

1.6.1-alpha.0

4 years ago

1.6.0

4 years ago

1.6.0-alpha.2

4 years ago

1.6.0-alpha.1

4 years ago

1.6.0-alpha.0

4 years ago

1.5.0

4 years ago

1.5.0-alpha.2

4 years ago

1.5.0-alpha.1

4 years ago

1.5.0-alpha.0

4 years ago

1.4.2

4 years ago

1.4.1

4 years ago

1.4.1-alpha.1

4 years ago

1.4.0-alpha.1

4 years ago

1.4.0-alpha.2

4 years ago

1.4.0

4 years ago

1.4.0-y.0

4 years ago

1.4.0-alpha.0

4 years ago

1.3.0

4 years ago

1.2.2-alpha.5

4 years ago

1.2.2-alpha.4

4 years ago

1.2.2-alpha.3

4 years ago

1.2.2-alpha.2

4 years ago

1.2.2-alpha.1

4 years ago

1.2.2-alpha.0

4 years ago

1.2.1

4 years ago

1.2.1-alpha.1

4 years ago

1.2.0

4 years ago

1.2.0-alpha.2

4 years ago

1.2.0-alpha.1

4 years ago

1.2.0-alpha.0

4 years ago

1.1.9

4 years ago

1.1.9-alpha.1

4 years ago

1.1.9-alpha.0

4 years ago

1.1.7-alpha.3

4 years ago

1.1.8

4 years ago

1.1.7-alpha.2

4 years ago

1.1.7

4 years ago

1.1.7-alpha.1

4 years ago

1.1.7-alpha.0

4 years ago

1.1.6

4 years ago

1.1.6-alpha.2

4 years ago

1.1.6-alpha.0

4 years ago

1.1.6-alpha.1

4 years ago

1.1.5

4 years ago

1.1.5-alpha.4

4 years ago

1.1.5-alpha.5

4 years ago

1.1.5-alpha.2

4 years ago

1.1.5-alpha.0

4 years ago

1.1.5-alpha.1

4 years ago

1.1.4

4 years ago

1.1.4-alpha.8

4 years ago

1.1.4-alpha.7

4 years ago

1.1.4-alpha.6

4 years ago

1.1.4-alpha.5

4 years ago

1.1.4-alpha.4

4 years ago

1.1.4-alpha.3

4 years ago

1.1.4-alpha.2

4 years ago

1.1.4-alpha.1

4 years ago

1.1.4-alpha.0

4 years ago

1.1.3-alpha.4

4 years ago

1.1.3

4 years ago

1.1.3-alpha.3

4 years ago

1.1.3-alpha.2

4 years ago

1.1.3-alpha.1

4 years ago

1.1.3-alpha.0

4 years ago

1.1.2

4 years ago

1.1.2-alpha.0

4 years ago

1.1.1

4 years ago

1.1.1-alpha.2

4 years ago

1.1.1-alpha.1

4 years ago

1.1.1-alpha.0

4 years ago

1.1.0

4 years ago

1.1.0-alpha.1

4 years ago

1.1.0-alpha.2

4 years ago

1.1.0-alpha.0

4 years ago

1.0.17-alpha.0

4 years ago

1.0.16

4 years ago

1.0.16-alpha.0

4 years ago

1.0.15-alpha.0

4 years ago

1.0.15

4 years ago

1.0.13-alpha.3

4 years ago

1.0.13-alpha.2

4 years ago

1.0.14

4 years ago

1.0.13

4 years ago

1.0.13-alpha.1

4 years ago

1.0.13-alpha.0

4 years ago

1.0.12

4 years ago

1.0.12-alpha.1

4 years ago

1.0.12-alpha.0

4 years ago

1.0.11

4 years ago

1.0.11-alpha.0

4 years ago

1.0.10-alpha.0

4 years ago

1.0.10

4 years ago

1.0.9

4 years ago

1.0.9-alpha.1

4 years ago

1.0.9-alpha.0

4 years ago

1.0.8

4 years ago

1.0.7

4 years ago

1.0.8-alpha.0

4 years ago

1.0.7-alpha.0

4 years ago

1.0.6-alpha.0

4 years ago

1.0.6

4 years ago

1.0.5-alpha.0

4 years ago

1.0.5

4 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.3-alpha.1

4 years ago

1.0.2

4 years ago

1.0.1

4 years ago

1.0.2-alpha.0

4 years ago

1.0.0

4 years ago

1.0.0-aplha.13

4 years ago

1.0.0-aplha.12

4 years ago

1.0.0-aplha.11

4 years ago

1.0.0-aplha.10

4 years ago

1.0.0-aplha.9

4 years ago

1.0.0-aplha.7

4 years ago

1.0.0-aplha.8

4 years ago

1.0.0-aplha.5

4 years ago

1.0.0-aplha.6

4 years ago

1.0.0-aplha.4

4 years ago

1.0.0-aplha.3

4 years ago

1.0.0-aplha.2

4 years ago

1.0.0-alpha.1

4 years ago

0.1.10

4 years ago

0.1.10-0

4 years ago

0.1.9

4 years ago

0.1.9-0

4 years ago

0.1.8

4 years ago

0.1.8-1

4 years ago

0.1.8-0

4 years ago

0.1.7

4 years ago

0.1.6

4 years ago

0.1.5

4 years ago

0.1.4

4 years ago

0.1.3

4 years ago

0.1.1

4 years ago

0.1.0

4 years ago