ice 路由配置采用 config 配置无效

wj8zmpe1  于 5个月前  发布在  其他
关注(0)|答案(6)|浏览(57)

Describe the bug

1.当前使用的 ice 版本 3.1.2
2. 不想使用内置的约定路由,于是使用了向下兼容之前版本的 config 配置形式,发现配置的路由无法展示
3. 每次修改 config 内的 routes 配置就需要重新启动项目,增加了非常大的开发成本

Expected behavior

1.config 优先级应该大于约定式路由,使用 config 配置的时候应该关闭约定式的路由逻辑
2.个人理解路由模式可以放在配置中,如果是config路由配置形式 则路由配置的逻辑不应该放在启动配置中,才能保证在文件更新的时候自动同步更新.ice文件中的route文件

Actual behavior

No response

Version of ice.js

3.1.2

Content of build.json or ice.config.mts

import { defineConfig } from '@ice/app';
import icestark from '@ice/plugin-icestark';
// import { routesConfig } from './src/routes';

export default defineConfig(() => ({
  ssg: false,
  // When the child application is registered by url, codeSplitting `page` is recommended.
  codeSplitting: 'page',
  plugins: [icestark({ type: 'child' })],
  routes: {
    config: [
      {
        path: 'demo1',
        // 从 src/page 开始计算路径,并且需要写后缀。
        component: 'demo/index.tsx',
      },
      {
        path: '/',
        component: 'index.tsx',
      },
    ],
  },
}));

Additional context

No response

ycl3bljg

ycl3bljg1#

提供下 src/pages 下的目录结构,对于路由文件更新热重启的问题后续我们优化下
暂时可以先通过 ignoreFiles 忽略 pages 下默认的规则

kh212irz

kh212irz2#

// 路由结构就是这样的
├─ pages
├├── demo
├ └── index.tsx
├├── index.tsx
├├── layout.tsx

另外,ignorefiles 的作用不是忽略不要将 **/xx 的文件下作为路由吗?
有时候遇到页面结构不复杂 在页面文件下 我不会新建 comp文件 直接吧页面的拆分几个部分平铺在这个文件下了, 这种情况这种写法就行不通了

hlswsv35

hlswsv353#

ignoreFiles 作用是为了忽略基于约定的文件,如果你配置成 ** 默认所有规则都走 config,而不是把 config 内容作为约定式的补充

u4dcyp6a

u4dcyp6a4#

试了一下 还是不行
配置片段
routes: {
config:[
{
path: '/demo2',
component: 'demo/index.tsx',
},
{
path: '/',
component: 'index.tsx',
},],
ignoreFiles: ['**'],
},
]

错误信息: Please add routes(like pages/index.tsx) to your app

ymzxtsji

ymzxtsji5#

@dozedoze 你这个错误暂时无法复现,可以参考下 https://github.com/alibaba/ice/blob/master/examples/routes-config/ice.config.mts 这个例子,提供一个复现的 demo 给我们

yfwxisqw

yfwxisqw6#

export default defineConfig(() => ({
ssg: false,
codeSplitting: 'page',
plugins: [icestark({ type: 'child' }), request()],
routes: {
config: routesConfig,
ignoreFiles: ['**'],
},
dropLogLevel: 'log',
eslint: true,
}));
也是新建的仓库 配置项相对该例子就多了微前端的plugin
routesConfig 就是我上面的那个

相关问题