Releases: alibaba/ice
Releases · alibaba/ice
v3.5.0
v3.4.12
v3.4.11
v3.4.10
- Feat: externals plugin for external dependencies mush easier #6892
import { defineConfig } from '@ice/app';
import externals from '@ice/plugin-externals';
export default defineConfig(() => ({
plugins: [externals({ preset: 'react' })]
}));
Visit docs for more detail.
- Feat: support the simple mode of intl solution #6953
import { defineConfig } from '@ice/app';
import intl from '@ice/plugin-intl';
export default defineConfig({
plugins: [
// Add intlSolution to remove the dependency of react-intl, API usage is limited in this mode.
intl({ intlSolution: 'simple' }),
],
});
Visit docs for more detail.
v3.4.9
v3.4.8
- Fix: do not remove request config of dataLoader compilation #6869
- Feat: support plugin for intl #6863
- Feat: support split page chunk in cjs format #6843
- Fix: the minify configuration of swc #6871
- Fix: add mismatch warning for single route mode #6870
- Fix: support
https
in speedup mode #6879 - Feat: support compile options for the function type of
compilationConfig
#6880
v3.4.7
- Deprecate generator API of
addTargetExport
#6861 - Remove
Document
runtime in client bundle #6848 - Reduce server size by remove unnecessary dependencies and runtime #6848
- Optimize runtime size when
dataLoader
is not defined #6849 #6864 - Chore: remove useless code of webpack compiler #6860
- Optimize runtime size by remove routes config code #6850
v3.4.6
- Feat: support dynamic import API for different scenario #6831
import { dynamic } from 'ice';
const ComponentA = dynamic(() => import('../components/A'));
const ComponentB = dynamic(() => import('../components/B'));
const ComponentC = dynamic(() => import('../components/C'), { ssr: false });
export default function Home({ show }) {
return (
<>
{/* load immediately, but in a separate client bundle */}
<ComponentA />
{/* load only the show is true */}
{show && <ComponentB />}
{/* load only on the client side */}
<ComponentC />
</>
);
}
Kudos to @HomyeeKing .
- Feat: support props for
KeepAliveOutlet
#6819
import { KeepAliveOutlet } from 'ice';
export default function Layout() {
return (
<div>
<h2>Layout</h2>
{/* limit is the limitation number of outlets to keep alive. */}
{/* when paths is configured, only the specified paths will be kept alive. */}
<KeepAliveOutlet limit={2} paths={['/home']} />
</div>
);
}
- Feat: support add plugin by cli option #6829
ice start -- --plugin @ice/plugin-analyze