diff --git a/README.md b/README.md index 8d0bb1c0..2e95369c 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@

Soybean Admin

-This project is forded from [Soybean Admin](https://github.com/honghuangdc/soybean-admin). And we migrate this project from Vite to Farm reusing Vite plugins, after migrate to Farm, this project is 5 times faster than vite in dev and 10 times faster than Vite in prod. +This project is forded from [Soybean Admin](https://github.com/honghuangdc/soybean-admin). And we migrate this project from Vite to Farm reusing Vite plugins. ```bash npm run dev:farm # start with Farm @@ -13,8 +13,19 @@ npm run dev # start with Vite npm run build # build with Vite ``` +After migrate to Farm, this project is 2 times faster than Vite in Dev, and 6x times faster in Prod! + Performance Compare: -||Cold Start(Server Ready + Page Rendered)|Build|Compare| -|---|---|---|---|---| -|Farm| | | 7.6s | | -|Vite| 9.4s | 25.2s | | +||Cold Start(Server Ready + Page Rendered)| +|---|---|---|---| +|Farm| 3.5s | 4s | +|Vite| 7.5s | 24.1s | +|Compare| Farm is 2x faster than Vite| Farm is 6x faster than Vite| + +So this means when using Farm, you can get better performance in both dev and prod, and you can avoid a lot of issues of Vite: + +- No huge amount of requests in Dev +- Consistency between dev and prod +- Flexible bundling configuration + +And it is really easy to migrate your project from Vite to Farm, just move your `plugins` in `vite.config.ts` to `vitePlugins` in `farm.config.ts` diff --git a/build/plugins/index.ts b/build/plugins/index.ts index fec5e554..7125f699 100644 --- a/build/plugins/index.ts +++ b/build/plugins/index.ts @@ -2,7 +2,7 @@ import type { PluginOption } from 'vite'; import vue from '@vitejs/plugin-vue'; import vueJsx from '@vitejs/plugin-vue-jsx'; import unocss from '@unocss/vite'; -import progress from 'vite-plugin-progress'; +// import progress from 'vite-plugin-progress'; import VueDevtools from 'vite-plugin-vue-devtools'; import pageRoute from '@soybeanjs/vite-plugin-vue-page-route'; import unplugin from './unplugin'; @@ -26,8 +26,8 @@ export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | Plugin VueDevtools(), ...unplugin(viteEnv), unocss(), - mock(viteEnv), - progress() + mock(viteEnv) + // progress() ]; if (viteEnv.VITE_VISUALIZER === 'Y') { diff --git a/farm.config.ts b/farm.config.ts index ef9203a0..d3bd7032 100644 --- a/farm.config.ts +++ b/farm.config.ts @@ -17,6 +17,8 @@ const srcPath = getSrcPath(); const isOpenProxy = viteEnv.VITE_HTTP_PROXY === 'Y'; const envConfig = getServiceEnvConfig(viteEnv); +console.log('start', Date.now()); + export default defineConfig({ root: rootPath, compilation: { diff --git a/vite.config.ts b/vite.config.ts index 0807bb4f..b0657f3d 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,6 +1,7 @@ import { defineConfig, loadEnv } from 'vite'; import { createViteProxy, getRootPath, getSrcPath, setupVitePlugins, viteDefine } from './build'; import { getServiceEnvConfig } from './.env-config'; +console.log('start', Date.now()); export default defineConfig(configEnv => { const viteEnv = loadEnv(configEnv.mode, process.cwd()) as unknown as ImportMetaEnv; @@ -31,7 +32,7 @@ export default defineConfig(configEnv => { server: { host: '0.0.0.0', port: 3200, - // open: true, + open: true, proxy: createViteProxy(isOpenProxy, envConfig) }, optimizeDeps: {