chore: add comparation

This commit is contained in:
Bright Wu 2023-10-14 21:19:32 +08:00
parent ab08e568e4
commit a7ade4676d
9 changed files with 101 additions and 240 deletions

205
README.md
View File

@ -3,201 +3,18 @@
<h1>Soybean Admin</h1> <h1>Soybean Admin</h1>
</div> </div>
[![license](https://img.shields.io/badge/license-MIT-green.svg)](./LICENSE) ![](https://img.shields.io/github/stars/honghuangdc/soybean-admin) ![](https://img.shields.io/github/forks/honghuangdc/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.
## 注意
Soybean Admin 正在重构重构后的版本为v1.0,变更点如下:
- 采用基于 pnpm 的 monorepo 管理项目
- 第三方 soybeanjs 的工具库直接抽离到项目中(ElegantRouter除外),不再作为依赖
- 采用全新的路由插件 [ElegantRouter](https://github.com/soybeanjs/elegant-router)
- 使用基于 [ApiFox](https://apifox.com/) 的远程 mock 代替本地 mock
- 基于现有路由插件迁移至新路由插件的指南
- 代码实现遵循 SoybeanJS 的代码规范
- 项目的 main 分支保留系统核心部分,示例页面和无关核心的插件移至 example 分支
- 完整 1.0 版本的文档
> 1.0版本仍然采用 NaiveUI
> 同时推出需要商业授权的 AntDesignVue 版本 和 ElementPlus 版本
全新收费版的 Elegant Admin 会同时进行开发,特性如下:
- 与UI框架无关的核心架子基础组件由基于UnoCSS实现的组件提供可以对接不同的UI框架
- 更丰富的主题配置及系统主题定制私有化
## 简介
[Soybean Admin](https://github.com/honghuangdc/soybean-admin) 是一个基于 Vue3、Vite3、TypeScript、NaiveUI、Pinia 和 UnoCSS 的清新优雅的中后台模版,它使用了最新流行的前端技术栈,内置丰富的主题配置,有着极高的代码规范,基于文件的路由系统以及基于 Mock 的动态权限路由,开箱即用的中后台前端解决方案,也可用于学习参考。
## 特性
- **最新流行技术栈**:使用 Vue3/Vite 等前端前沿技术开发, 使用高效率的 npm 包管理器 pnpm
- **TypeScript**: 应用程序级 JavaScript 的语言
- **主题**:丰富可配置的主题、暗黑模式,基于原子 css 框架 - UnoCss 的动态主题颜色
- **代码规范**:丰富的规范插件及极高的代码规范
- **文件路由系统**:基于文件的路由系统,根据页面文件自动生成路由声明、路由导入和路由模块
- **权限路由**:提供前端静态和后端动态两种路由模式,基于 mock 的动态路由能快速实现后端动态路由
- **请求函数**:基于 axios 的完善的请求函数封装,提供 Promise 和 hooks 两种请求函数,加入请求结果数据转换的适配器
## SoybeanJS 工具库
- [@soybeanjs/cli](https://github.com/soybeanjs/cli): SoybeanJS 命令行工具包含发布、git 和依赖等相关的实用命令
- [@soybeanjs/changelog](https://github.com/soybeanjs/changelog): 根据 git tags 和 commits 生成 changelog [示例](./CHANGELOG.md)
- [eslint-config-soybeanjs](https://github.com/soybeanjs/eslint-config): SoybeanJS 的 eslint 预设配置
- [@soybeanjs/materials](https://github.com/soybeanjs/materials): SoybeanJS 的物料仓库
- [@soybeanjs/vite-plugin-vue-page-route](https://github.com/soybeanjs/vite-plugin-vue-page-route): SoybeanAdmin 的路由插件
## 基于 SoybeanAdmin 二次开发的项目
- [electron-mock-admin](https://github.com/lixin59/electron-mock-api): 一个 Mock Api 管理系统,帮助前端开发伙伴快速实现接口的 mock。
- [T-Shell](https://github.com/TheBlindM/T-Shell): 是一个可配置命令提示的终端模拟器和 SSH 客户端。
## 在线预览
- [Soybean Admin 预览地址](https://admin.soybeanjs.cn/)
## 文档
- [项目文档预览地址](https://admin-docs.soybeanjs.cn/)
## 代码仓库
| 仓库 | GitHub 地址 | gitee 镜像 | 预览 |
| -------------- | ----------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | --------------------------------------------------------- |
| soybean-admin | [GitHub](https://github.com/honghuangdc/soybean-admin) | [gitee](https://gitee.com/honghuangdc/soybean-admin) | [预览](https://admin.soybeanjs.cn/) |
| tauri 版 | [tauri 版](https://github.com/honghuangdc/soybean-admin/tree/tauri) | [tauri 版](https://gitee.com/honghuangdc/soybean-admin/tree/tauri) | |
| 精简版 | [精简版](https://github.com/honghuangdc/soybean-admin/tree/thin) | [精简版](https://gitee.com/honghuangdc/soybean-admin/tree/thin) | |
| 集成 fast-crud | [集成 fast-crud](https://github.com/honghuangdc/soybean-admin/tree/fast-crud) | [集成 fast-crud](https://gitee.com/honghuangdc/soybean-admin/tree/fast-crud) | [预览](http://fast-crud.docmirror.cn/soybean/#/crud/demo) |
## 更新日志
[CHANGELOG](./CHANGELOG.md)
## 后端服务
- [soybean-admin-java](https://github.com/honghuangdc/soybean-admin-java)
## 项目示例图
![](https://s2.loli.net/2022/05/16/keOtgFH27r9nqYS.png)
![](https://s2.loli.net/2022/05/18/bW7mftiQexkvSTG.png)
![](https://s2.loli.net/2022/05/16/uV5nzjb3gYptAEl.png)
![](https://s2.loli.net/2022/05/16/rSnNHLdpuvkKxWq.png)
![](https://s2.loli.net/2023/06/07/O39EKNa675FZIuS.png)
![](https://s2.loli.net/2022/05/18/Mt6YZqmDxO8v4uR.png)
![](https://s2.loli.net/2023/06/07/zhmWnFlPTfDpot8.png)
![](https://s2.loli.net/2022/05/16/VPl6Ru1iCAhLcS4.png)
![](https://s2.loli.net/2023/06/07/n6Dy1HXBvuPc9oT.png)
![](https://s2.loli.net/2022/06/07/rY8TyAftM5dxspv.png)
![](https://s2.loli.net/2022/06/07/5GNBAd31IzQVjLP.png)
![](https://s2.loli.net/2022/06/07/rRSG6mEZpujOACT.png)
<div align="center">
<img style="width:380px;margin-right:18px;border:1px solid #dedede;" src="https://s2.loli.net/2023/06/07/A5Nonc9vI6pB1lr.png" />
&nbsp;
<img style="width:380px;border:1px solid #dedede;" src="https://s2.loli.net/2023/06/07/VwBjqEhTke3OxXF.png" />
</div>
## 安装使用
- 环境配置
**本地环境需要安装 pnpm 7.x 、Node.js 14.18+ 和 Git**
- 克隆代码
```bash ```bash
git clone https://github.com/honghuangdc/soybean-admin.git npm run dev:farm # start with Farm
npm run build:farm # build with Farm
npm run dev # start with Vite
npm run build # build with Vite
``` ```
- 安装依赖 Performance Compare:
||Cold Start(Server Ready + Page Rendered)|Build|Compare|
```bash |---|---|---|---|---|
pnpm i |Farm| | | 7.6s | |
``` |Vite| 9.4s | 25.2s | |
- 运行
```bash
pnpm dev
```
- 打包
```bash
pnpm build
```
## Docker 部署
- Docker 部署 Soybean
```bash
docker build -t soybean-admin-image -f docker/Dockerfile .
docker run -d -p 80:80 soybean-admin-image
```
- 访问 SoybeanAdmin
打开本地浏览器访问`http://localhost`
## 如何贡献
非常欢迎您的加入![提一个 Issue](https://github.com/honghuangdc/soybean-admin/issues/new) 或者提交一个 Pull Request。
## Git 贡献提交规范
项目已经内置 Angular 提交规范,直接执行 commit 命令即可生成符合 Angular 提交规范的 commit。
项目已用 simple-git-hooks 代替了 husky, 旧版本用了 husky执行 pnpm soy init-simple-git-hooks 进行初始化配置
## 浏览器支持
本地开发推荐使用`Chrome 90+` 浏览器
支持现代浏览器, 不支持 IE
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/archive/internet-explorer_9-11/internet-explorer_9-11_48x48.png" alt="IE" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)IE | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt=" Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)Safari |
| :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| not support | last 2 versions | last 2 versions | last 2 versions | last 2 versions |
## 开源作者
[@Soybean](https://github.com/honghuangdc)
## 交流
`Soybean Admin` 是完全开源免费的项目,在帮助开发者更方便地进行中大型管理系统开发,同时也提供微信和 QQ 交流群,使用问题欢迎在群内提问。
<div style="display:flex;">
<div style="padding-right:24px;">
<p>QQ交流群</p>
<img src="https://i.loli.net/2021/11/24/1J6REWXiHomU2kM.jpg" style="width:200px" />
</div>
<div>
<p>添加本人微信,欢迎来技术交流,业务咨询</p>
<img src="https://s2.loli.net/2023/06/07/sVyCUFBvzQ9f5b7.jpg" style="width:200px" />
</div>
</div>
## 捐赠
如果你觉得这个项目对你有帮助,可以请 Soybean 喝杯饮料表示支持Soybean 开源的动力离不开各位的支持和鼓励。
![赞助](https://s2.loli.net/2022/01/24/i9cpq7lTCrKUoFf.png)
## License
本项目基于[MIT © Soybean-2021](./LICENSE) 协议,仅供参考学习,商用时请保留作者的版权信息,作者不对软件做担保和负责。

View File

@ -1,9 +1,9 @@
import type { PluginOption } from 'vite'; import type { PluginOption } from 'vite';
import vue from '@vitejs/plugin-vue'; import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx'; import vueJsx from '@vitejs/plugin-vue-jsx';
// import unocss from '@unocss/vite'; 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 VueDevtools from 'vite-plugin-vue-devtools';
import pageRoute from '@soybeanjs/vite-plugin-vue-page-route'; import pageRoute from '@soybeanjs/vite-plugin-vue-page-route';
import unplugin from './unplugin'; import unplugin from './unplugin';
import mock from './mock'; import mock from './mock';
@ -16,6 +16,44 @@ import pwa from './pwa';
* @param viteEnv - * @param viteEnv -
*/ */
export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] { export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] {
const plugins = [
vue({
script: {
defineModel: true
}
}),
vueJsx(),
VueDevtools(),
...unplugin(viteEnv),
unocss(),
mock(viteEnv),
progress()
];
if (viteEnv.VITE_VISUALIZER === 'Y') {
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
plugins.push(visualizer as PluginOption);
}
if (viteEnv.VITE_COMPRESS === 'Y') {
plugins.push(compress(viteEnv));
}
if (viteEnv.VITE_PWA === 'Y' || viteEnv.VITE_VERCEL === 'Y') {
plugins.push(pwa());
}
if (viteEnv.VITE_SOYBEAN_ROUTE_PLUGIN === 'Y') {
plugins.push(pageRoute());
}
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
return plugins;
}
/**
* vite插件
* @param viteEnv -
*/
export function setupFarmVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | PluginOption[])[] {
const plugins = [ const plugins = [
() => ({ () => ({
vitePlugin: vue({ vitePlugin: vue({
@ -30,7 +68,7 @@ export function setupVitePlugins(viteEnv: ImportMetaEnv): (PluginOption | Plugin
filters: ['\\.vue$', '\\\\0.+'] filters: ['\\.vue$', '\\\\0.+']
}), }),
// VueDevtools(), // VueDevtools(),
...unplugin(viteEnv), ...unplugin(viteEnv, true),
// unocss(), // unocss(),
mock(viteEnv) mock(viteEnv)
// progress() // progress()

View File

@ -3,10 +3,10 @@ import IconsResolver from 'unplugin-icons/resolver';
import Components from 'unplugin-vue-components/rollup'; import Components from 'unplugin-vue-components/rollup';
import { NaiveUiResolver } from 'unplugin-vue-components/resolvers'; import { NaiveUiResolver } from 'unplugin-vue-components/resolvers';
import { FileSystemIconLoader } from 'unplugin-icons/loaders'; import { FileSystemIconLoader } from 'unplugin-icons/loaders';
// import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'; import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import { getSrcPath } from '../utils'; import { getSrcPath } from '../utils';
export default function unplugin(viteEnv: ImportMetaEnv) { export default function unplugin(viteEnv: ImportMetaEnv, isFarm = false) {
const { VITE_ICON_PREFIX, VITE_ICON_LOCAL_PREFIX } = viteEnv; const { VITE_ICON_PREFIX, VITE_ICON_LOCAL_PREFIX } = viteEnv;
const srcPath = getSrcPath(); const srcPath = getSrcPath();
@ -33,12 +33,14 @@ export default function unplugin(viteEnv: ImportMetaEnv) {
NaiveUiResolver(), NaiveUiResolver(),
IconsResolver({ customCollections: [collectionName], componentPrefix: VITE_ICON_PREFIX }) IconsResolver({ customCollections: [collectionName], componentPrefix: VITE_ICON_PREFIX })
] ]
}) }),
// createSvgIconsPlugin({ isFarm
// iconDirs: [localIconPath], ? null
// symbolId: `${VITE_ICON_LOCAL_PREFIX}-[dir]-[name]`, : createSvgIconsPlugin({
// inject: 'body-last', iconDirs: [localIconPath],
// customDomId: '__SVG_ICON_LOCAL__' symbolId: `${VITE_ICON_LOCAL_PREFIX}-[dir]-[name]`,
// }) inject: 'body-last',
]; customDomId: '__SVG_ICON_LOCAL__'
})
].filter(Boolean);
} }

View File

@ -1,8 +1,7 @@
import type { UserConfig } from '@farmfe/core'; import type { UserConfig } from '@farmfe/core';
import { loadEnv } from 'vite'; import { loadEnv } from 'vite';
// import vue from '@farmfe/js-plugin-vue';
import postcss from '@farmfe/js-plugin-postcss'; import postcss from '@farmfe/js-plugin-postcss';
import { createViteProxy, getRootPath, getSrcPath, setupVitePlugins, viteDefine } from './build'; import { createViteProxy, getRootPath, getSrcPath, setupFarmVitePlugins, viteDefine } from './build';
import { getServiceEnvConfig } from './.env-config'; import { getServiceEnvConfig } from './.env-config';
function defineConfig(config: UserConfig) { function defineConfig(config: UserConfig) {
@ -30,14 +29,15 @@ export default defineConfig({
} }
}, },
define: viteDefine, define: viteDefine,
sourcemap: true external: ['uno.css', 'virtual:svg-icons-register'],
sourcemap: false
}, },
vitePlugins: setupVitePlugins(viteEnv) as object[], vitePlugins: setupFarmVitePlugins(viteEnv) as object[],
plugins: [['@farmfe/plugin-sass', { additionalData: `@use "@/styles/scss/global.scss" as *;` }], postcss()], plugins: [['@farmfe/plugin-sass', { additionalData: `@use "@/styles/scss/global.scss" as *;` }], postcss()],
server: { server: {
// host: '0.0.0.0', // host: '0.0.0.0',
port: 3200, port: 3200,
// open: true, open: true,
proxy: createViteProxy(isOpenProxy, envConfig) as any proxy: createViteProxy(isOpenProxy, envConfig) as any
} }
}); });

View File

@ -39,11 +39,13 @@
"dev:farm": "cross-env VITE_SERVICE_ENV=dev farm start", "dev:farm": "cross-env VITE_SERVICE_ENV=dev farm start",
"dev:test": "cross-env VITE_SERVICE_ENV=test vite", "dev:test": "cross-env VITE_SERVICE_ENV=test vite",
"dev:prod": "cross-env VITE_SERVICE_ENV=prod vite", "dev:prod": "cross-env VITE_SERVICE_ENV=prod vite",
"build": "npm run typecheck && cross-env VITE_SERVICE_ENV=prod vite build", "build": "cross-env VITE_SERVICE_ENV=prod vite build",
"build:farm": "cross-env VITE_SERVICE_ENV=prod farm build",
"build:dev": "npm run typecheck && cross-env VITE_SERVICE_ENV=dev vite build", "build:dev": "npm run typecheck && cross-env VITE_SERVICE_ENV=dev vite build",
"build:test": "npm run typecheck && cross-env VITE_SERVICE_ENV=test vite build", "build:test": "npm run typecheck && cross-env VITE_SERVICE_ENV=test vite build",
"build:vercel": "cross-env VITE_HASH_ROUTE=Y VITE_VERCEL=Y vite build", "build:vercel": "cross-env VITE_HASH_ROUTE=Y VITE_VERCEL=Y vite build",
"preview": "vite preview", "preview": "vite preview",
"preview:farm": "farm preview",
"typecheck": "vue-tsc --noEmit --skipLibCheck", "typecheck": "vue-tsc --noEmit --skipLibCheck",
"lint": "eslint . --fix", "lint": "eslint . --fix",
"format": "soy prettier-write", "format": "soy prettier-write",
@ -88,7 +90,7 @@
"devDependencies": { "devDependencies": {
"@amap/amap-jsapi-types": "0.0.13", "@amap/amap-jsapi-types": "0.0.13",
"@farmfe/cli": "^0.5.8", "@farmfe/cli": "^0.5.8",
"@farmfe/core": "^0.13.2", "@farmfe/core": "^0.13.5",
"@farmfe/js-plugin-postcss": "1.0.4", "@farmfe/js-plugin-postcss": "1.0.4",
"@farmfe/js-plugin-vue": "^3.0.0", "@farmfe/js-plugin-vue": "^3.0.0",
"@farmfe/plugin-sass": "^0.2.2", "@farmfe/plugin-sass": "^0.2.2",

View File

@ -103,14 +103,14 @@ devDependencies:
specifier: ^0.5.8 specifier: ^0.5.8
version: 0.5.8 version: 0.5.8
'@farmfe/core': '@farmfe/core':
specifier: ^0.13.2 specifier: ^0.13.5
version: 0.13.2 version: 0.13.5
'@farmfe/js-plugin-postcss': '@farmfe/js-plugin-postcss':
specifier: 1.0.4 specifier: 1.0.4
version: 1.0.4(@farmfe/core@0.13.2)(postcss@8.4.30) version: 1.0.4(@farmfe/core@0.13.5)(postcss@8.4.30)
'@farmfe/js-plugin-vue': '@farmfe/js-plugin-vue':
specifier: ^3.0.0 specifier: ^3.0.0
version: 3.0.0(@farmfe/core@0.13.2)(sass@1.67.0) version: 3.0.0(@farmfe/core@0.13.5)(sass@1.67.0)
'@farmfe/plugin-sass': '@farmfe/plugin-sass':
specifier: ^0.2.2 specifier: ^0.2.2
version: 0.2.2 version: 0.2.2
@ -1953,8 +1953,8 @@ packages:
walkdir: 0.4.1 walkdir: 0.4.1
dev: true dev: true
/@farmfe/core-darwin-arm64@0.13.2: /@farmfe/core-darwin-arm64@0.13.5:
resolution: {integrity: sha512-pdGgdNbCJE1/R7tEpoA1h44y+jbuau+Ut2ceFrIk2Khcgj1xpQUiPYozYcTzvqk+Wh9CZPOtxB+szNT97GJ+KA==} resolution: {integrity: sha512-kicTnMMobbWIqZM1qWgy+iWBaQVU4k2yFe324Sn6V7zjA61CJwBU8r51xRlqwxQH91vrQ8w6qGEcF6+2xt/vdw==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [arm64] cpu: [arm64]
os: [darwin] os: [darwin]
@ -1962,8 +1962,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@farmfe/core-darwin-x64@0.13.2: /@farmfe/core-darwin-x64@0.13.5:
resolution: {integrity: sha512-k/dL5y5jjB38THWnDji+K/BJAdOUA5S86kHEbSfIeUFsFEy7HRkVxfuK2AF/vS21QL4/HEjF9tXx6AVfw1cgYg==} resolution: {integrity: sha512-3Y7m8v8DM1IwHtWyiWf3ke2uwDoiFCbEO+fkEQdRY1YLEfYhDTvFl3n3tKZtjWOX/dnAixwN7FqXICOCKmtwCg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [darwin] os: [darwin]
@ -1971,8 +1971,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@farmfe/core-linux-x64-gnu@0.13.2: /@farmfe/core-linux-x64-gnu@0.13.5:
resolution: {integrity: sha512-lfmxOnBsNsm+ICySv3dIEmFZ1gormpFi2irH4frTDRdFlgKihfodZd14R2v4gV5K+3eKOn6ynRcc3L7vjmlBKg==} resolution: {integrity: sha512-1ACg/Pr/NfO5lpzhB0yKDyRPuZ1UwTxA8U/007PtksKiNMjS5o77DKGL3pLQ+a64Z8DMLCLr42gEf2mu6J7tvQ==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [linux] os: [linux]
@ -1981,8 +1981,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@farmfe/core-win32-x64-msvc@0.13.2: /@farmfe/core-win32-x64-msvc@0.13.5:
resolution: {integrity: sha512-JrFweR8/wsPZdo1wzgollSUokA0OluQq5JBywdb2BpNgKnvyGJ1ydZdYiNB9SzqyiwhqXHaPVfLlIUZIh/aHYg==} resolution: {integrity: sha512-Z7N/L7sTP3H81/BewqjvjelasVIDDtXEwTDNMu6qIbb/pnrmh7f9Wql8N7H3SpPLr8htMbYDGDWj9dab65nTpg==}
engines: {node: '>= 10'} engines: {node: '>= 10'}
cpu: [x64] cpu: [x64]
os: [win32] os: [win32]
@ -1990,8 +1990,8 @@ packages:
dev: true dev: true
optional: true optional: true
/@farmfe/core@0.13.2: /@farmfe/core@0.13.5:
resolution: {integrity: sha512-wdfmZt7SE3G9PXhBXRiOymkY4ljeCF0oxZk58+XYv04RpS8TMCuJ4hk9DJnjVMhgToH9NP90yBnHZWqQJqoXXw==} resolution: {integrity: sha512-s1pmwUT8Y41Nl/1yW/SxKoX5RR/FnU80ws242nuXy7zsRH6FQh67DGKVDyftJdkivHoGSSTvHnsxgBHVCH7vFw==}
engines: {node: '>= 16'} engines: {node: '>= 16'}
dependencies: dependencies:
'@farmfe/runtime': 0.7.2 '@farmfe/runtime': 0.7.2
@ -2020,10 +2020,10 @@ packages:
zod: 3.22.4 zod: 3.22.4
zod-validation-error: 1.5.0(zod@3.22.4) zod-validation-error: 1.5.0(zod@3.22.4)
optionalDependencies: optionalDependencies:
'@farmfe/core-darwin-arm64': 0.13.2 '@farmfe/core-darwin-arm64': 0.13.5
'@farmfe/core-darwin-x64': 0.13.2 '@farmfe/core-darwin-x64': 0.13.5
'@farmfe/core-linux-x64-gnu': 0.13.2 '@farmfe/core-linux-x64-gnu': 0.13.5
'@farmfe/core-win32-x64-msvc': 0.13.2 '@farmfe/core-win32-x64-msvc': 0.13.5
transitivePeerDependencies: transitivePeerDependencies:
- bufferutil - bufferutil
- debug - debug
@ -2031,17 +2031,17 @@ packages:
- utf-8-validate - utf-8-validate
dev: true dev: true
/@farmfe/js-plugin-postcss@1.0.4(@farmfe/core@0.13.2)(postcss@8.4.30): /@farmfe/js-plugin-postcss@1.0.4(@farmfe/core@0.13.5)(postcss@8.4.30):
resolution: {integrity: sha512-bNCDjeZsp3l0jHPk/xcSQ5fDf2kEWvakuWqu2ed2GE2IJkhboWeY7s2WrZ9AzDmH9p9BdH3W6BXXGt/0kRP+Cg==} resolution: {integrity: sha512-bNCDjeZsp3l0jHPk/xcSQ5fDf2kEWvakuWqu2ed2GE2IJkhboWeY7s2WrZ9AzDmH9p9BdH3W6BXXGt/0kRP+Cg==}
peerDependencies: peerDependencies:
'@farmfe/core': ^0.13.2 '@farmfe/core': ^0.13.2
postcss: '>=8.0.0' postcss: '>=8.0.0'
dependencies: dependencies:
'@farmfe/core': 0.13.2 '@farmfe/core': 0.13.5
postcss: 8.4.30 postcss: 8.4.30
dev: true dev: true
/@farmfe/js-plugin-vue@3.0.0(@farmfe/core@0.13.2)(sass@1.67.0): /@farmfe/js-plugin-vue@3.0.0(@farmfe/core@0.13.5)(sass@1.67.0):
resolution: {integrity: sha512-W+Eou+dQN4n+bZbqG3Dxv8JwGFp3liApY68Jqru3KS/yladqDAOYz6oZlQ7M89HFWPCyrlPY7L48esRwzN5W+A==} resolution: {integrity: sha512-W+Eou+dQN4n+bZbqG3Dxv8JwGFp3liApY68Jqru3KS/yladqDAOYz6oZlQ7M89HFWPCyrlPY7L48esRwzN5W+A==}
peerDependencies: peerDependencies:
'@farmfe/core': ^0.13.0 '@farmfe/core': ^0.13.0
@ -2056,7 +2056,7 @@ packages:
stylus: stylus:
optional: true optional: true
dependencies: dependencies:
'@farmfe/core': 0.13.2 '@farmfe/core': 0.13.5
sass: 1.67.0 sass: 1.67.0
dev: true dev: true

View File

@ -1,9 +1,9 @@
// import 'uno.css'; import 'uno.css';
import '@soybeanjs/vue-materials/dist/style.css'; import '@soybeanjs/vue-materials/dist/style.css';
import 'swiper/css'; import 'swiper/css';
import 'swiper/css/navigation'; import 'swiper/css/navigation';
import 'swiper/css/pagination'; import 'swiper/css/pagination';
// import 'virtual:svg-icons-register'; import 'virtual:svg-icons-register';
import '../styles/css/global.css'; import '../styles/css/global.css';
/** import static assets: css, js , font and so on. - [引入静态资源css、js和字体文件等] */ /** import static assets: css, js , font and so on. - [引入静态资源css、js和字体文件等] */

View File

@ -7,6 +7,8 @@
<script lang="ts" setup> <script lang="ts" setup>
import { WorkbenchHeader, WorkbenchMain } from './components'; import { WorkbenchHeader, WorkbenchMain } from './components';
console.log('end', Date.now());
</script> </script>
<style scoped></style> <style scoped></style>

View File

@ -31,7 +31,7 @@ export default defineConfig(configEnv => {
server: { server: {
host: '0.0.0.0', host: '0.0.0.0',
port: 3200, port: 3200,
open: true, // open: true,
proxy: createViteProxy(isOpenProxy, envConfig) proxy: createViteProxy(isOpenProxy, envConfig)
}, },
optimizeDeps: { optimizeDeps: {