🚀 ice.js: The Progressive App Framework Based On React(基于 React 的渐进式应用框架)
MIT License
Bot releases are visible (Hide)
Published by ClarkXia 25 days ago
compileDependencies
in speedup mode #6925import { defineConfig } from '@ice/app';
import externals from '@ice/plugin-externals';
export default defineConfig(() => ({
plugins: [externals({ preset: 'react' })]
}));
Visit docs for more detail.
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.
Published by ClarkXia 4 months ago
useAsyncData
for component Await
#6882# list all available routes
ice start --list
# open browser on startup with specific home route
ice start --open home
TParams
in plugin-request #6885Published by ClarkXia 5 months ago
https
in speedup mode #6879compilationConfig
#6880Published by ClarkXia 6 months ago
addTargetExport
#6861Document
runtime in client bundle #6848dataLoader
is not defined #6849 #6864Published by ClarkXia 7 months ago
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 .
KeepAliveOutlet
#6819import { 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>
);
}
ice start -- --plugin @ice/plugin-analyze
data-loader
( speedup mode only) #6804rax-compat
#6814Published by ClarkXia 8 months ago
Published by ClarkXia 8 months ago
Published by ClarkXia 9 months ago
Published by ClarkXia 9 months ago
plugin-rax-compat
including, support option inlineStyle in SSR and inline style for both less and scss.swcrc
#6746Published by ClarkXia 9 months ago
Published by ClarkXia 9 months ago
Improve the build speed by implement customize Rspack plugins and loaders by Rust. The build speed and HMR has been significantly improved in speedup mode. PR #6680
@ice/pack-binding
which is based on RspackPublished by ClarkXia 10 months ago
Feat: support plugin of Unocss #6665
Install @ice/plugin-unocss
:
$ npm install @ice/plugin-unocss --save-dev
Configure it in ice.config.mts
:
import { defineConfig } from '@ice/app';
import Unocss from '@ice/plugin-unocss';
export default defineConfig(() => ({
plugins: [
Unocss(),
]
}));
Plugin has a default preset @unocss/preset-uno
for UnoCSS.
Feat: add default export of rax-compat #6643
Fix: better error handling of build script #6672
Chore: remove type exports #6651
Published by ClarkXia 11 months ago
Fix: re-order transform plugins #6649
Published by ClarkXia 11 months ago
HotFix: the judgment of unsupported syntax #6646
Published by ClarkXia 11 months ago
plugin-store
will works properly.data-loader
, cont-and-let
will be transformed if necessary.Published by ClarkXia 11 months ago
Published by ClarkXia 12 months ago
@ice/app
export fields support #6544configureWebpack
in speedup mode #6564Published by ClarkXia about 1 year ago
import { defineConfig } from '@ice/app';
export default defineConfig(() => ({
cssModules: {
localIdentName: '[hash:8]',
},
}));
import { defineConfig } from '@ice/app';
import streamError from '@ice/plugin-stream-error';
export default defineConfig(() => ({
plugins: [
streamError(),
],
}));
Published by ClarkXia about 1 year ago