feat: 更新 Playwright 工作流以计算构建大小;添加 vite-plugin-purgecss-updated-v5 插件
Some checks failed
/ surge (push) Successful in 2m24s
/ lint-build-and-check (push) Successful in 2m37s
/ depcheck (push) Successful in 2m43s
/ build-and-deploy-to-vercel (push) Successful in 2m47s
/ playwright (push) Has been cancelled

This commit is contained in:
mini2024
2025-03-22 23:47:21 +08:00
parent 9e6d526ada
commit d23fcd72c7
4 changed files with 88 additions and 6 deletions

View File

@ -19,13 +19,13 @@ jobs:
env:
VITE_BUILD_COMMIT: ${{ github.sha }}
- name: 计算构建大小
working-directory: dist
run: |
set -x
du -sk . | cut -f1 # 以千字节(KB)为单位
du -sm . | cut -f1 # 以兆字节(MB)为单位
du -s --si . | cut -f1 # 使用SI单位(基于1000而非1024)
du -sh . | cut -f1 # 以人类可读的方式
echo "📊 构建大小统计:"
echo "----------------------------------------"
echo "🔹 人类可读格式: $(du -sh dist | cut -f1)"
echo "🔹 以MB为单位: $(du -sm dist | cut -f1) MB"
echo "🔹 文件总数: $(find dist -type f | wc -l) 个文件"
echo "----------------------------------------"
- name: 部署到 Surge
id: surge_deploy
if: ${{ github.actor != 'nektos/act' }} # https://nektosact.com/usage/index.html#skipping-steps

View File

@ -127,6 +127,7 @@
"vite": "^6.1.0",
"vite-plugin-cdn-import": "^1.0.1",
"vite-plugin-fake-server": "^2.2.0",
"vite-plugin-purgecss-updated-v5": "^1.2.4",
"vite-plugin-singlefile": "^2.2.0",
"vite-plugin-static-copy": "^2.3.0",
"vite-plugin-vue-devtools": "^7.7.1",

75
pnpm-lock.yaml generated
View File

@ -272,6 +272,9 @@ importers:
vite-plugin-fake-server:
specifier: ^2.2.0
version: 2.2.0
vite-plugin-purgecss-updated-v5:
specifier: ^1.2.4
version: 1.2.4(vite@6.1.0(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.83.4)(terser@5.38.2)(tsx@4.19.2)(yaml@2.7.0))
vite-plugin-singlefile:
specifier: ^2.2.0
version: 2.2.0(rollup@4.30.1)(vite@6.1.0(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.83.4)(terser@5.38.2)(tsx@4.19.2)(yaml@2.7.0))
@ -2432,6 +2435,10 @@ packages:
resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
engines: {node: '>=14'}
commander@12.1.0:
resolution: {integrity: sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==}
engines: {node: '>=18'}
commander@13.1.0:
resolution: {integrity: sha512-/rFeCpNJQbhSZjGVwO9RFV3xPqbnERS8MmIQzCtD/zl6gpJuV/bMLuN92oG3F7d8oDEHHRrujSXNUr8fpjntKw==}
engines: {node: '>=18'}
@ -3236,6 +3243,11 @@ packages:
resolution: {integrity: sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==}
hasBin: true
glob@11.0.1:
resolution: {integrity: sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw==}
engines: {node: 20 || >=22}
hasBin: true
glob@7.2.3:
resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
deprecated: Glob versions prior to v9 are no longer supported
@ -3561,6 +3573,10 @@ packages:
jackspeak@3.4.3:
resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==}
jackspeak@4.1.0:
resolution: {integrity: sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw==}
engines: {node: 20 || >=22}
jiti@2.4.2:
resolution: {integrity: sha512-rg9zJN+G4n2nfJl5MW3BMygZX56zKPNVEYYqq7adpmMh4Jn2QNEwhvQlFy6jPVdcod7txZtKHWnyZiA3a0zP7A==}
hasBin: true
@ -3775,6 +3791,10 @@ packages:
lru-cache@10.4.3:
resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==}
lru-cache@11.0.2:
resolution: {integrity: sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA==}
engines: {node: 20 || >=22}
lru-cache@5.1.1:
resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
@ -3873,6 +3893,10 @@ packages:
resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==}
engines: {node: '>=4'}
minimatch@10.0.1:
resolution: {integrity: sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==}
engines: {node: 20 || >=22}
minimatch@3.1.2:
resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
@ -4237,6 +4261,10 @@ packages:
resolution: {integrity: sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==}
engines: {node: '>=16 || 14 >=14.18'}
path-scurry@2.0.0:
resolution: {integrity: sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==}
engines: {node: 20 || >=22}
path-to-regexp@1.9.0:
resolution: {integrity: sha512-xIp7/apCFJuUHdDLWe8O1HIkb0kQrOMb/0u6FXQjemHn/ii5LrIzU6bdECnsiTF/GjZkMEKg1xdiZwNqDYlZ6g==}
@ -4411,6 +4439,10 @@ packages:
resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==}
engines: {node: '>=6'}
purgecss@7.0.2:
resolution: {integrity: sha512-4Ku8KoxNhOWi9X1XJ73XY5fv+I+hhTRedKpGs/2gaBKU8ijUiIKF/uyyIyh7Wo713bELSICF5/NswjcuOqYouQ==}
hasBin: true
qs@6.5.3:
resolution: {integrity: sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==}
engines: {node: '>=0.6'}
@ -5400,6 +5432,11 @@ packages:
'@nuxt/kit':
optional: true
vite-plugin-purgecss-updated-v5@1.2.4:
resolution: {integrity: sha512-Cvc+LSMu+qAoEWR7xTHl42kjCK11GHqLJLep7ywX9GF/CYRABhschBXo0J8xHD00zf83xR/scw9A7pPQ2D9C6w==}
peerDependencies:
vite: ^6.1.0
vite-plugin-singlefile@2.2.0:
resolution: {integrity: sha512-Ik1wXmJaGzeQtUeIV7JprDUqqy6DlLzXAY27Blei5peE4c9VJF+Kp9xWDJeuX0RJUZmFbIAuw1/RAh06A+Ql7w==}
engines: {node: '>18.0.0'}
@ -8049,6 +8086,8 @@ snapshots:
commander@10.0.1: {}
commander@12.1.0: {}
commander@13.1.0: {}
commander@2.20.3: {}
@ -8939,6 +8978,15 @@ snapshots:
package-json-from-dist: 1.0.1
path-scurry: 1.11.1
glob@11.0.1:
dependencies:
foreground-child: 3.3.0
jackspeak: 4.1.0
minimatch: 10.0.1
minipass: 7.1.2
package-json-from-dist: 1.0.1
path-scurry: 2.0.0
glob@7.2.3:
dependencies:
fs.realpath: 1.0.0
@ -9235,6 +9283,10 @@ snapshots:
optionalDependencies:
'@pkgjs/parseargs': 0.11.0
jackspeak@4.1.0:
dependencies:
'@isaacs/cliui': 8.0.2
jiti@2.4.2: {}
js-beautify@1.15.1:
@ -9446,6 +9498,8 @@ snapshots:
lru-cache@10.4.3: {}
lru-cache@11.0.2: {}
lru-cache@5.1.1:
dependencies:
yallist: 3.1.1
@ -9534,6 +9588,10 @@ snapshots:
min-indent@1.0.1: {}
minimatch@10.0.1:
dependencies:
brace-expansion: 2.0.1
minimatch@3.1.2:
dependencies:
brace-expansion: 1.1.11
@ -9878,6 +9936,11 @@ snapshots:
lru-cache: 10.4.3
minipass: 7.1.2
path-scurry@2.0.0:
dependencies:
lru-cache: 11.0.2
minipass: 7.1.2
path-to-regexp@1.9.0:
dependencies:
isarray: 0.0.1
@ -10035,6 +10098,13 @@ snapshots:
punycode@2.3.1: {}
purgecss@7.0.2:
dependencies:
commander: 12.1.0
glob: 11.0.1
postcss: 8.5.1
postcss-selector-parser: 6.1.2
qs@6.5.3: {}
queue-microtask@1.2.3: {}
@ -11140,6 +11210,11 @@ snapshots:
- rollup
- supports-color
vite-plugin-purgecss-updated-v5@1.2.4(vite@6.1.0(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.83.4)(terser@5.38.2)(tsx@4.19.2)(yaml@2.7.0)):
dependencies:
purgecss: 7.0.2
vite: 6.1.0(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.83.4)(terser@5.38.2)(tsx@4.19.2)(yaml@2.7.0)
vite-plugin-singlefile@2.2.0(rollup@4.30.1)(vite@6.1.0(@types/node@22.13.10)(jiti@2.4.2)(less@4.2.2)(sass-embedded@1.83.4)(terser@5.38.2)(tsx@4.19.2)(yaml@2.7.0)):
dependencies:
micromatch: 4.0.8

View File

@ -25,6 +25,7 @@ import { createUtils4uAutoImports } from 'utils4u/auto-imports';
import { PluginOption } from 'vite';
import cdnImport from 'vite-plugin-cdn-import';
import { vitePluginFakeServer } from 'vite-plugin-fake-server';
import pluginPurgeCss from 'vite-plugin-purgecss-updated-v5';
import { viteSingleFile } from 'vite-plugin-singlefile';
import { viteStaticCopy } from 'vite-plugin-static-copy';
import VueDevTools from 'vite-plugin-vue-devtools';
@ -181,6 +182,11 @@ export function Plugins() {
{ dest: cesiumBaseUrl, src: `${cesiumSource}/Widgets` },
],
}),
// https://github.com/rsnakdmx/vite-plugin-purgecss-v5?tab=readme-ov-file#-usage
pluginPurgeCss({
variables: true,
}),
);
const _unused = () => {