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
6条答案
按热度按时间ycl3bljg1#
提供下 src/pages 下的目录结构,对于路由文件更新热重启的问题后续我们优化下
暂时可以先通过 ignoreFiles 忽略 pages 下默认的规则
kh212irz2#
// 路由结构就是这样的
├─ pages
├├── demo
├ └── index.tsx
├├── index.tsx
├├── layout.tsx
另外,ignorefiles 的作用不是忽略不要将 **/xx 的文件下作为路由吗?
有时候遇到页面结构不复杂 在页面文件下 我不会新建 comp文件 直接吧页面的拆分几个部分平铺在这个文件下了, 这种情况这种写法就行不通了
hlswsv353#
ignoreFiles 作用是为了忽略基于约定的文件,如果你配置成
**
默认所有规则都走 config,而不是把 config 内容作为约定式的补充u4dcyp6a4#
试了一下 还是不行
配置片段
routes: {
config:[
{
path: '/demo2',
component: 'demo/index.tsx',
},
{
path: '/',
component: 'index.tsx',
},],
ignoreFiles: ['**'],
},
]
错误信息: Please add routes(like pages/index.tsx) to your app
ymzxtsji5#
@dozedoze 你这个错误暂时无法复现,可以参考下 https://github.com/alibaba/ice/blob/master/examples/routes-config/ice.config.mts 这个例子,提供一个复现的 demo 给我们
yfwxisqw6#
export default defineConfig(() => ({
ssg: false,
codeSplitting: 'page',
plugins: [icestark({ type: 'child' }), request()],
routes: {
config: routesConfig,
ignoreFiles: ['**'],
},
dropLogLevel: 'log',
eslint: true,
}));
也是新建的仓库 配置项相对该例子就多了微前端的plugin
routesConfig 就是我上面的那个