优化打包配置, 移除不必要的 chunck
All checks were successful
Node.js CI / build-and-test (push) Successful in 41s
All checks were successful
Node.js CI / build-and-test (push) Successful in 41s
更新依赖 移除不必要的注释 优化 "关于" 页面 启用 SASS/SCSS
This commit is contained in:
4445
package-lock.json
generated
4445
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
24
package.json
24
package.json
@ -12,27 +12,23 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mdui/icons": "^1.0.2",
|
"@mdui/icons": "^1.0.2",
|
||||||
"axios": "^1.8.1",
|
"axios": "^1.9.0",
|
||||||
"compress-json": "^3.1.1",
|
"compress-json": "^3.1.1",
|
||||||
"compression": "^1.8.0",
|
|
||||||
"cookie-parser": "^1.4.7",
|
"cookie-parser": "^1.4.7",
|
||||||
"express": "^5.0.1",
|
"express": "^5.1.0",
|
||||||
"idb": "^8.0.2",
|
"idb": "^8.0.3",
|
||||||
"mdui": "^2.1.3",
|
"mdui": "^2.1.3",
|
||||||
"pako": "^2.1.0",
|
"pinia": "^3.0.2",
|
||||||
"pinia": "^3.0.1",
|
|
||||||
"sirv": "^3.0.1",
|
|
||||||
"vue": "^3.5.13",
|
"vue": "^3.5.13",
|
||||||
"vue-client-only": "^2.1.0",
|
"vue-router": "^4.5.1"
|
||||||
"vue-router": "^4.5.0"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@vitejs/plugin-vue": "^5.2.1",
|
"@vitejs/plugin-vue": "^5.2.4",
|
||||||
"@vitejs/plugin-vue-jsx": "^4.1.1",
|
"@vitejs/plugin-vue-jsx": "^4.1.2",
|
||||||
"cross-env": "^7.0.3",
|
"cross-env": "^7.0.3",
|
||||||
"vite": "^6.1.1",
|
"sass": "^1.88.0",
|
||||||
|
"vite": "^6.3.5",
|
||||||
"vite-plugin-md": "^0.21.5",
|
"vite-plugin-md": "^0.21.5",
|
||||||
"vite-plugin-pwa": "^0.21.1",
|
"vite-plugin-vue-devtools": "^7.7.6"
|
||||||
"vite-plugin-vue-devtools": "^7.7.2"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
import { decompress } from 'compress-json'
|
import { decompress } from 'compress-json'
|
||||||
import './main.css'
|
import './main.scss'
|
||||||
|
|
||||||
import { createApp } from './main'
|
import { createApp } from './main'
|
||||||
import { createSSRRouter } from './router.js'
|
import { createSSRRouter } from './router.js'
|
||||||
|
35
src/main.css
35
src/main.css
@ -1,35 +0,0 @@
|
|||||||
@import 'mdui/mdui.css';
|
|
||||||
/* @import './assets/typescale.css'; */
|
|
||||||
|
|
||||||
body {
|
|
||||||
font-family: Roboto,Noto Sans SC,PingFang SC,Lantinghei SC,Microsoft Yahei,Hiragino Sans GB,"Microsoft Sans Serif",WenQuanYi Micro Hei,sans-serif;
|
|
||||||
background-color: rgb(var(--mdui-color-background));
|
|
||||||
transition: opacity var(--mdui-motion-duration-short2) var(--mdui-motion-easing-linear);
|
|
||||||
}
|
|
||||||
|
|
||||||
mdui-card {
|
|
||||||
width: 100%;
|
|
||||||
padding: 0px 16px 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
mdui-text-field {
|
|
||||||
margin: 8px 0px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.warn {
|
|
||||||
background-color: rgb(var(--mdui-color-error));
|
|
||||||
color: rgb(var(--mdui-color-on-error));
|
|
||||||
}
|
|
||||||
|
|
||||||
.warn-text {
|
|
||||||
color: rgb(var(--mdui-color-error));
|
|
||||||
}
|
|
||||||
|
|
||||||
.pre-break {
|
|
||||||
white-space: pre-line;
|
|
||||||
}
|
|
||||||
|
|
||||||
.no-select {
|
|
||||||
user-select: none;
|
|
||||||
}
|
|
||||||
|
|
50
src/main.scss
Normal file
50
src/main.scss
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
@import 'mdui/mdui.css';
|
||||||
|
// @import './assets/typescale.css';
|
||||||
|
|
||||||
|
// 字体配置
|
||||||
|
$font-family: Roboto, Noto Sans SC, PingFang SC, Lantinghei SC,
|
||||||
|
Microsoft Yahei, Hiragino Sans GB, "Microsoft Sans Serif",
|
||||||
|
WenQuanYi Micro Hei, sans-serif;
|
||||||
|
|
||||||
|
// MDUI 变量简写
|
||||||
|
$bg-color: rgb(var(--mdui-color-background));
|
||||||
|
$error-color: rgb(var(--mdui-color-error));
|
||||||
|
$on-error-color: rgb(var(--mdui-color-on-error));
|
||||||
|
$transition-duration: var(--mdui-motion-duration-short2);
|
||||||
|
$transition-easing: var(--mdui-motion-easing-linear);
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-family: $font-family;
|
||||||
|
background-color: $bg-color;
|
||||||
|
transition: opacity $transition-duration $transition-easing;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MDUI 组件样式
|
||||||
|
mdui-card {
|
||||||
|
width: 100%;
|
||||||
|
padding: 0 16px 16px;
|
||||||
|
}
|
||||||
|
|
||||||
|
mdui-text-field {
|
||||||
|
margin: 8px 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 警告样式
|
||||||
|
.warn {
|
||||||
|
background-color: $error-color;
|
||||||
|
color: $on-error-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
.warn-text {
|
||||||
|
color: $error-color;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 通用工具类
|
||||||
|
.pre-break {
|
||||||
|
white-space: pre-line;
|
||||||
|
}
|
||||||
|
|
||||||
|
.no-select {
|
||||||
|
user-select: none;
|
||||||
|
}
|
||||||
|
|
@ -14,9 +14,9 @@
|
|||||||
|
|
||||||
组件库与工具链
|
组件库与工具链
|
||||||
---
|
---
|
||||||
- MDUI 2
|
- MDUI 2 [mdui.org](https://mdui.org)
|
||||||
- Vue
|
- Vue 3 [vuejs.org](https://vuejs.org)
|
||||||
- Vite
|
- Vite 6 [vitejs.dev](https://vitejs.dev)
|
||||||
|
|
||||||
其他
|
其他
|
||||||
---
|
---
|
||||||
|
@ -4,7 +4,6 @@ import { defineConfig } 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 vueDevTools from 'vite-plugin-vue-devtools'
|
import vueDevTools from 'vite-plugin-vue-devtools'
|
||||||
import { VitePWA } from 'vite-plugin-pwa';
|
|
||||||
import markdown from 'vite-plugin-md'
|
import markdown from 'vite-plugin-md'
|
||||||
|
|
||||||
// https://vite.dev/config/
|
// https://vite.dev/config/
|
||||||
@ -31,47 +30,33 @@ export default defineConfig({
|
|||||||
build: {
|
build: {
|
||||||
rollupOptions: {
|
rollupOptions: {
|
||||||
output: {
|
output: {
|
||||||
/*manualChunks(id) {
|
|
||||||
if (id.includes('node_modules')) {
|
|
||||||
return 'vendor';
|
|
||||||
}
|
|
||||||
}*/
|
|
||||||
manualChunks(id) {
|
manualChunks(id) {
|
||||||
if (id.includes('node_modules')) {
|
if (id.includes('node_modules')) {
|
||||||
const modules = id.toString().split('node_modules/')[1];
|
const modules = id.toString().split('node_modules/')[1];
|
||||||
const moduleNames = modules.split('/');
|
const moduleNames = modules.split('/');
|
||||||
const moduleName = moduleNames[0]
|
const moduleName = moduleNames[0]
|
||||||
return `vendor/${moduleName}`
|
return `vendor/${moduleName}`
|
||||||
}
|
}
|
||||||
if (id.includes('src/views')) {
|
if (id.includes('src/views')) {
|
||||||
const modules = id.toString().split('src/views/')[1];
|
const modules = id.toString().split('src/views/')[1];
|
||||||
const moduleName = modules.split('.')[0];
|
const moduleName = modules.split('.')[0];
|
||||||
return `page/${moduleName}`;
|
return `page/${moduleName}`;
|
||||||
}
|
}
|
||||||
if (id.includes('src/components')) {
|
if (id.includes('src/components')) {
|
||||||
const modules = id.toString().split('src/components/')[1];
|
const modules = id.toString().split('src/components/')[1];
|
||||||
const moduleName = modules.split('.')[0];
|
const moduleName = modules.split('.')[0];
|
||||||
return `component/${moduleName}`;
|
return `component/${moduleName}`;
|
||||||
}
|
}
|
||||||
if (id.includes('src/texts')) {
|
if (id.includes('src/texts')) {
|
||||||
const modules = id.toString().split('src/texts/')[1];
|
const modules = id.toString().split('src/texts/')[1];
|
||||||
const moduleName = modules.split('.')[0];
|
const moduleName = modules.split('.')[0];
|
||||||
return `text/${moduleName}`;
|
return `text/${moduleName}`;
|
||||||
}
|
}
|
||||||
if (id.includes('src/stores')) {
|
if (id.includes('src/stores')) {
|
||||||
const modules = id.toString().split('src/stores/')[1];
|
const modules = id.toString().split('src/stores/')[1];
|
||||||
const moduleName = modules.split('.')[0];
|
const moduleName = modules.split('.')[0];
|
||||||
return `store/${moduleName}`;
|
return `store/${moduleName}`;
|
||||||
}
|
}
|
||||||
if (id.includes('src/router.js')) {
|
|
||||||
return `router`;
|
|
||||||
}
|
|
||||||
if (id.includes('src/utils.js')) {
|
|
||||||
return `utils`;
|
|
||||||
}
|
|
||||||
if (id.includes('src/App.vue')) {
|
|
||||||
return `App`;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user