跳到主要内容

代码分包

默认策略

为了给页面提供最优的性能,ice.js 默认以路由维度分割代码,每个路由会生成一个独立的 js 和 css(如果有 css 源码),另外默认会根据第三方模块体积自动拆分 chunk,有可能会出现多个产物包。

组件级别的代码分割

如果构建产物过大,可以考虑把体积较大的组件进行拆包:

import { lazy, Suspense } from 'react';
// Avatar 组件会被单独拆包
const Avatar = lazy(() => import('@/components/Avatar'));

export default function Home() {
return (
<div>
<Avatar />
</div>
);
}

控制三方依赖的分包

三方依赖默认根据体积大小进行拆分。如果三方依赖过多,在某些场景下可能出现较多的网络请求,导致页面加载速度过慢,可关闭 codeSplitting 配置:

ice.config.mts
import { defineConfig } from '@ice/app';

export default defineConfig(() => ({
codeSplitting: 'page',
}))