feat(vite): 调整构建输出路径并增强 manualChunks 分包逻辑
Some checks failed
CI/CD Pipeline / playwright (push) Successful in 4m20s
CI/CD Pipeline / build-and-deploy (push) Failing after 3m12s

This commit is contained in:
严浩
2025-10-23 01:07:22 +08:00
parent e94c5fc372
commit a326c455ed
5 changed files with 193 additions and 126 deletions

View File

@@ -12,7 +12,21 @@ on:
workflow_dispatch:
jobs:
playwright:
runs-on: ubuntu-latest
container: mcr.microsoft.com/playwright:v1.56.1-noble
steps:
- name: ⚙️ 设置 Node 环境
uses: yanhao98/composite-actions/setup-node-environment@25eb4dc0c134cc9df2b7c569aa54140a366b45a8
# - name: 📥 安装 Playwright 浏览器
# run: pnpm exec playwright install --with-deps
- name: 📦 构建项目
run: pnpm run build-only
- name: ▶️ 运行 Playwright 测试
run: pnpm exec playwright test
build-and-deploy:
needs: playwright
runs-on: ubuntu-latest
container: gitea/runner-images:ubuntu-latest-slim # https://github.com/cloudflare/wrangler-action/issues/329#issuecomment-3046747722
@@ -51,16 +65,3 @@ jobs:
apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
command: deploy
playwright:
runs-on: ubuntu-latest
container: mcr.microsoft.com/playwright:v1.56.1-noble
steps:
- name: ⚙️ 设置 Node 环境
uses: yanhao98/composite-actions/setup-node-environment@25eb4dc0c134cc9df2b7c569aa54140a366b45a8
# - name: 📥 安装 Playwright 浏览器
# run: pnpm exec playwright install --with-deps
- name: 📦 构建项目
run: pnpm run build-only
- name: ▶️ 运行 Playwright 测试
run: pnpm exec playwright test

View File

@@ -99,6 +99,7 @@
"oxlint": "~1.23.0",
"postcss-html": "^1.8.0",
"prettier": "3.6.2",
"rollup": "^4.52.5",
"sass-embedded": "^1.93.2",
"stylelint": "^16.25.0",
"stylelint-config-recess-order": "^7.3.0",

209
pnpm-lock.yaml generated
View File

@@ -80,7 +80,7 @@ importers:
version: 1.2.42
'@intlify/unplugin-vue-i18n':
specifier: ^11.0.0
version: 11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.38.0(jiti@2.6.1))(rollup@4.52.4)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
version: 11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.38.0(jiti@2.6.1))(rollup@4.52.5)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
'@playwright/test':
specifier: ^1.55.0
version: 1.56.1
@@ -177,6 +177,9 @@ importers:
prettier:
specifier: 3.6.2
version: 3.6.2
rollup:
specifier: ^4.52.5
version: 4.52.5
sass-embedded:
specifier: ^1.93.2
version: 1.93.2
@@ -251,7 +254,7 @@ importers:
version: 2.0.7
vue-macros:
specifier: 3.1.1
version: 3.1.1(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(esbuild@0.25.11)(rollup@4.52.4)(typescript@5.9.2)(vite@7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))
version: 3.1.1(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(esbuild@0.25.11)(rollup@4.52.5)(typescript@5.9.2)(vite@7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))
vue-tsc:
specifier: ^3.1.0
version: 3.1.1(typescript@5.9.2)
@@ -1808,78 +1811,78 @@ packages:
rollup:
optional: true
'@rollup/rollup-android-arm-eabi@4.52.4':
resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==}
'@rollup/rollup-android-arm-eabi@4.52.5':
resolution: {integrity: sha512-8c1vW4ocv3UOMp9K+gToY5zL2XiiVw3k7f1ksf4yO1FlDFQ1C2u72iACFnSOceJFsWskc2WZNqeRhFRPzv+wtQ==}
cpu: [arm]
os: [android]
'@rollup/rollup-android-arm64@4.52.4':
resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==}
'@rollup/rollup-android-arm64@4.52.5':
resolution: {integrity: sha512-mQGfsIEFcu21mvqkEKKu2dYmtuSZOBMmAl5CFlPGLY94Vlcm+zWApK7F/eocsNzp8tKmbeBP8yXyAbx0XHsFNA==}
cpu: [arm64]
os: [android]
'@rollup/rollup-darwin-arm64@4.52.4':
resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==}
'@rollup/rollup-darwin-arm64@4.52.5':
resolution: {integrity: sha512-takF3CR71mCAGA+v794QUZ0b6ZSrgJkArC+gUiG6LB6TQty9T0Mqh3m2ImRBOxS2IeYBo4lKWIieSvnEk2OQWA==}
cpu: [arm64]
os: [darwin]
'@rollup/rollup-darwin-x64@4.52.4':
resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==}
'@rollup/rollup-darwin-x64@4.52.5':
resolution: {integrity: sha512-W901Pla8Ya95WpxDn//VF9K9u2JbocwV/v75TE0YIHNTbhqUTv9w4VuQ9MaWlNOkkEfFwkdNhXgcLqPSmHy0fA==}
cpu: [x64]
os: [darwin]
'@rollup/rollup-freebsd-arm64@4.52.4':
resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==}
'@rollup/rollup-freebsd-arm64@4.52.5':
resolution: {integrity: sha512-QofO7i7JycsYOWxe0GFqhLmF6l1TqBswJMvICnRUjqCx8b47MTo46W8AoeQwiokAx3zVryVnxtBMcGcnX12LvA==}
cpu: [arm64]
os: [freebsd]
'@rollup/rollup-freebsd-x64@4.52.4':
resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==}
'@rollup/rollup-freebsd-x64@4.52.5':
resolution: {integrity: sha512-jr21b/99ew8ujZubPo9skbrItHEIE50WdV86cdSoRkKtmWa+DDr6fu2c/xyRT0F/WazZpam6kk7IHBerSL7LDQ==}
cpu: [x64]
os: [freebsd]
'@rollup/rollup-linux-arm-gnueabihf@4.52.4':
resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==}
'@rollup/rollup-linux-arm-gnueabihf@4.52.5':
resolution: {integrity: sha512-PsNAbcyv9CcecAUagQefwX8fQn9LQ4nZkpDboBOttmyffnInRy8R8dSg6hxxl2Re5QhHBf6FYIDhIj5v982ATQ==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm-musleabihf@4.52.4':
resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==}
'@rollup/rollup-linux-arm-musleabihf@4.52.5':
resolution: {integrity: sha512-Fw4tysRutyQc/wwkmcyoqFtJhh0u31K+Q6jYjeicsGJJ7bbEq8LwPWV/w0cnzOqR2m694/Af6hpFayLJZkG2VQ==}
cpu: [arm]
os: [linux]
'@rollup/rollup-linux-arm64-gnu@4.52.4':
resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==}
'@rollup/rollup-linux-arm64-gnu@4.52.5':
resolution: {integrity: sha512-a+3wVnAYdQClOTlyapKmyI6BLPAFYs0JM8HRpgYZQO02rMR09ZcV9LbQB+NL6sljzG38869YqThrRnfPMCDtZg==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-arm64-musl@4.52.4':
resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==}
'@rollup/rollup-linux-arm64-musl@4.52.5':
resolution: {integrity: sha512-AvttBOMwO9Pcuuf7m9PkC1PUIKsfaAJ4AYhy944qeTJgQOqJYJ9oVl2nYgY7Rk0mkbsuOpCAYSs6wLYB2Xiw0Q==}
cpu: [arm64]
os: [linux]
'@rollup/rollup-linux-loong64-gnu@4.52.4':
resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==}
'@rollup/rollup-linux-loong64-gnu@4.52.5':
resolution: {integrity: sha512-DkDk8pmXQV2wVrF6oq5tONK6UHLz/XcEVow4JTTerdeV1uqPeHxwcg7aFsfnSm9L+OO8WJsWotKM2JJPMWrQtA==}
cpu: [loong64]
os: [linux]
'@rollup/rollup-linux-ppc64-gnu@4.52.4':
resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==}
'@rollup/rollup-linux-ppc64-gnu@4.52.5':
resolution: {integrity: sha512-W/b9ZN/U9+hPQVvlGwjzi+Wy4xdoH2I8EjaCkMvzpI7wJUs8sWJ03Rq96jRnHkSrcHTpQe8h5Tg3ZzUPGauvAw==}
cpu: [ppc64]
os: [linux]
'@rollup/rollup-linux-riscv64-gnu@4.52.4':
resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==}
'@rollup/rollup-linux-riscv64-gnu@4.52.5':
resolution: {integrity: sha512-sjQLr9BW7R/ZiXnQiWPkErNfLMkkWIoCz7YMn27HldKsADEKa5WYdobaa1hmN6slu9oWQbB6/jFpJ+P2IkVrmw==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-riscv64-musl@4.52.4':
resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==}
'@rollup/rollup-linux-riscv64-musl@4.52.5':
resolution: {integrity: sha512-hq3jU/kGyjXWTvAh2awn8oHroCbrPm8JqM7RUpKjalIRWWXE01CQOf/tUNWNHjmbMHg/hmNCwc/Pz3k1T/j/Lg==}
cpu: [riscv64]
os: [linux]
'@rollup/rollup-linux-s390x-gnu@4.52.4':
resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==}
'@rollup/rollup-linux-s390x-gnu@4.52.5':
resolution: {integrity: sha512-gn8kHOrku8D4NGHMK1Y7NA7INQTRdVOntt1OCYypZPRt6skGbddska44K8iocdpxHTMMNui5oH4elPH4QOLrFQ==}
cpu: [s390x]
os: [linux]
@@ -1888,33 +1891,38 @@ packages:
cpu: [x64]
os: [linux]
'@rollup/rollup-linux-x64-musl@4.52.4':
resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==}
'@rollup/rollup-linux-x64-gnu@4.52.5':
resolution: {integrity: sha512-hXGLYpdhiNElzN770+H2nlx+jRog8TyynpTVzdlc6bndktjKWyZyiCsuDAlpd+j+W+WNqfcyAWz9HxxIGfZm1Q==}
cpu: [x64]
os: [linux]
'@rollup/rollup-openharmony-arm64@4.52.4':
resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==}
'@rollup/rollup-linux-x64-musl@4.52.5':
resolution: {integrity: sha512-arCGIcuNKjBoKAXD+y7XomR9gY6Mw7HnFBv5Rw7wQRvwYLR7gBAgV7Mb2QTyjXfTveBNFAtPt46/36vV9STLNg==}
cpu: [x64]
os: [linux]
'@rollup/rollup-openharmony-arm64@4.52.5':
resolution: {integrity: sha512-QoFqB6+/9Rly/RiPjaomPLmR/13cgkIGfA40LHly9zcH1S0bN2HVFYk3a1eAyHQyjs3ZJYlXvIGtcCs5tko9Cw==}
cpu: [arm64]
os: [openharmony]
'@rollup/rollup-win32-arm64-msvc@4.52.4':
resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==}
'@rollup/rollup-win32-arm64-msvc@4.52.5':
resolution: {integrity: sha512-w0cDWVR6MlTstla1cIfOGyl8+qb93FlAVutcor14Gf5Md5ap5ySfQ7R9S/NjNaMLSFdUnKGEasmVnu3lCMqB7w==}
cpu: [arm64]
os: [win32]
'@rollup/rollup-win32-ia32-msvc@4.52.4':
resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==}
'@rollup/rollup-win32-ia32-msvc@4.52.5':
resolution: {integrity: sha512-Aufdpzp7DpOTULJCuvzqcItSGDH73pF3ko/f+ckJhxQyHtp67rHw3HMNxoIdDMUITJESNE6a8uh4Lo4SLouOUg==}
cpu: [ia32]
os: [win32]
'@rollup/rollup-win32-x64-gnu@4.52.4':
resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==}
'@rollup/rollup-win32-x64-gnu@4.52.5':
resolution: {integrity: sha512-UGBUGPFp1vkj6p8wCRraqNhqwX/4kNQPS57BCFc8wYh0g94iVIW33wJtQAx3G7vrjjNtRaxiMUylM0ktp/TRSQ==}
cpu: [x64]
os: [win32]
'@rollup/rollup-win32-x64-msvc@4.52.4':
resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==}
'@rollup/rollup-win32-x64-msvc@4.52.5':
resolution: {integrity: sha512-TAcgQh2sSkykPRWLrdyy2AiceMckNf5loITqXxFI5VuQjS5tSuw3WlwdN8qv8vzjLAUTvYaH/mVjSFpbkFbpTg==}
cpu: [x64]
os: [win32]
@@ -4364,8 +4372,8 @@ packages:
rfdc@1.4.1:
resolution: {integrity: sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==}
rollup@4.52.4:
resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==}
rollup@4.52.5:
resolution: {integrity: sha512-3GuObel8h7Kqdjt0gxkEzaifHTqLVW56Y/bjN7PSQtkKr0w3V/QYSdt6QWYtd7A1xUtYQigtdUfgj1RvWVtorw==}
engines: {node: '>=18.0.0', npm: '>=8.0.0'}
hasBin: true
@@ -6365,13 +6373,13 @@ snapshots:
'@intlify/shared@11.1.12': {}
'@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.38.0(jiti@2.6.1))(rollup@4.52.4)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))':
'@intlify/unplugin-vue-i18n@11.0.1(@vue/compiler-dom@3.5.22)(eslint@9.38.0(jiti@2.6.1))(rollup@4.52.5)(typescript@5.9.2)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))':
dependencies:
'@eslint-community/eslint-utils': 4.9.0(eslint@9.38.0(jiti@2.6.1))
'@intlify/bundle-utils': 11.0.1(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))
'@intlify/shared': 11.1.12
'@intlify/vue-i18n-extensions': 8.0.0(@intlify/shared@11.1.12)(@vue/compiler-dom@3.5.22)(vue-i18n@11.1.12(vue@3.5.22(typescript@5.9.2)))(vue@3.5.22(typescript@5.9.2))
'@rollup/pluginutils': 5.3.0(rollup@4.52.4)
'@rollup/pluginutils': 5.3.0(rollup@4.52.5)
'@typescript-eslint/scope-manager': 8.46.2
'@typescript-eslint/typescript-estree': 8.46.2(typescript@5.9.2)
debug: 4.4.3
@@ -6751,78 +6759,81 @@ snapshots:
'@rolldown/pluginutils@1.0.0-beta.37': {}
'@rollup/pluginutils@5.3.0(rollup@4.52.4)':
'@rollup/pluginutils@5.3.0(rollup@4.52.5)':
dependencies:
'@types/estree': 1.0.8
estree-walker: 2.0.2
picomatch: 4.0.3
optionalDependencies:
rollup: 4.52.4
rollup: 4.52.5
'@rollup/rollup-android-arm-eabi@4.52.4':
'@rollup/rollup-android-arm-eabi@4.52.5':
optional: true
'@rollup/rollup-android-arm64@4.52.4':
'@rollup/rollup-android-arm64@4.52.5':
optional: true
'@rollup/rollup-darwin-arm64@4.52.4':
'@rollup/rollup-darwin-arm64@4.52.5':
optional: true
'@rollup/rollup-darwin-x64@4.52.4':
'@rollup/rollup-darwin-x64@4.52.5':
optional: true
'@rollup/rollup-freebsd-arm64@4.52.4':
'@rollup/rollup-freebsd-arm64@4.52.5':
optional: true
'@rollup/rollup-freebsd-x64@4.52.4':
'@rollup/rollup-freebsd-x64@4.52.5':
optional: true
'@rollup/rollup-linux-arm-gnueabihf@4.52.4':
'@rollup/rollup-linux-arm-gnueabihf@4.52.5':
optional: true
'@rollup/rollup-linux-arm-musleabihf@4.52.4':
'@rollup/rollup-linux-arm-musleabihf@4.52.5':
optional: true
'@rollup/rollup-linux-arm64-gnu@4.52.4':
'@rollup/rollup-linux-arm64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-arm64-musl@4.52.4':
'@rollup/rollup-linux-arm64-musl@4.52.5':
optional: true
'@rollup/rollup-linux-loong64-gnu@4.52.4':
'@rollup/rollup-linux-loong64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-ppc64-gnu@4.52.4':
'@rollup/rollup-linux-ppc64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-riscv64-gnu@4.52.4':
'@rollup/rollup-linux-riscv64-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-riscv64-musl@4.52.4':
'@rollup/rollup-linux-riscv64-musl@4.52.5':
optional: true
'@rollup/rollup-linux-s390x-gnu@4.52.4':
'@rollup/rollup-linux-s390x-gnu@4.52.5':
optional: true
'@rollup/rollup-linux-x64-gnu@4.52.4':
optional: true
'@rollup/rollup-linux-x64-musl@4.52.4':
'@rollup/rollup-linux-x64-gnu@4.52.5':
optional: true
'@rollup/rollup-openharmony-arm64@4.52.4':
'@rollup/rollup-linux-x64-musl@4.52.5':
optional: true
'@rollup/rollup-win32-arm64-msvc@4.52.4':
'@rollup/rollup-openharmony-arm64@4.52.5':
optional: true
'@rollup/rollup-win32-ia32-msvc@4.52.4':
'@rollup/rollup-win32-arm64-msvc@4.52.5':
optional: true
'@rollup/rollup-win32-x64-gnu@4.52.4':
'@rollup/rollup-win32-ia32-msvc@4.52.5':
optional: true
'@rollup/rollup-win32-x64-msvc@4.52.4':
'@rollup/rollup-win32-x64-gnu@4.52.5':
optional: true
'@rollup/rollup-win32-x64-msvc@4.52.5':
optional: true
'@sindresorhus/is@7.1.0': {}
@@ -9554,32 +9565,32 @@ snapshots:
rfdc@1.4.1: {}
rollup@4.52.4:
rollup@4.52.5:
dependencies:
'@types/estree': 1.0.8
optionalDependencies:
'@rollup/rollup-android-arm-eabi': 4.52.4
'@rollup/rollup-android-arm64': 4.52.4
'@rollup/rollup-darwin-arm64': 4.52.4
'@rollup/rollup-darwin-x64': 4.52.4
'@rollup/rollup-freebsd-arm64': 4.52.4
'@rollup/rollup-freebsd-x64': 4.52.4
'@rollup/rollup-linux-arm-gnueabihf': 4.52.4
'@rollup/rollup-linux-arm-musleabihf': 4.52.4
'@rollup/rollup-linux-arm64-gnu': 4.52.4
'@rollup/rollup-linux-arm64-musl': 4.52.4
'@rollup/rollup-linux-loong64-gnu': 4.52.4
'@rollup/rollup-linux-ppc64-gnu': 4.52.4
'@rollup/rollup-linux-riscv64-gnu': 4.52.4
'@rollup/rollup-linux-riscv64-musl': 4.52.4
'@rollup/rollup-linux-s390x-gnu': 4.52.4
'@rollup/rollup-linux-x64-gnu': 4.52.4
'@rollup/rollup-linux-x64-musl': 4.52.4
'@rollup/rollup-openharmony-arm64': 4.52.4
'@rollup/rollup-win32-arm64-msvc': 4.52.4
'@rollup/rollup-win32-ia32-msvc': 4.52.4
'@rollup/rollup-win32-x64-gnu': 4.52.4
'@rollup/rollup-win32-x64-msvc': 4.52.4
'@rollup/rollup-android-arm-eabi': 4.52.5
'@rollup/rollup-android-arm64': 4.52.5
'@rollup/rollup-darwin-arm64': 4.52.5
'@rollup/rollup-darwin-x64': 4.52.5
'@rollup/rollup-freebsd-arm64': 4.52.5
'@rollup/rollup-freebsd-x64': 4.52.5
'@rollup/rollup-linux-arm-gnueabihf': 4.52.5
'@rollup/rollup-linux-arm-musleabihf': 4.52.5
'@rollup/rollup-linux-arm64-gnu': 4.52.5
'@rollup/rollup-linux-arm64-musl': 4.52.5
'@rollup/rollup-linux-loong64-gnu': 4.52.5
'@rollup/rollup-linux-ppc64-gnu': 4.52.5
'@rollup/rollup-linux-riscv64-gnu': 4.52.5
'@rollup/rollup-linux-riscv64-musl': 4.52.5
'@rollup/rollup-linux-s390x-gnu': 4.52.5
'@rollup/rollup-linux-x64-gnu': 4.52.5
'@rollup/rollup-linux-x64-musl': 4.52.5
'@rollup/rollup-openharmony-arm64': 4.52.5
'@rollup/rollup-win32-arm64-msvc': 4.52.5
'@rollup/rollup-win32-ia32-msvc': 4.52.5
'@rollup/rollup-win32-x64-gnu': 4.52.5
'@rollup/rollup-win32-x64-msvc': 4.52.5
fsevents: 2.3.3
rrweb-cssom@0.8.0: {}
@@ -10181,10 +10192,10 @@ snapshots:
optionalDependencies:
'@vueuse/core': 13.9.0(vue@3.5.22(typescript@5.9.2))
unplugin-combine@2.1.2(esbuild@0.25.11)(rollup@4.52.4)(unplugin@2.3.10)(vite@7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)):
unplugin-combine@2.1.2(esbuild@0.25.11)(rollup@4.52.5)(unplugin@2.3.10)(vite@7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)):
optionalDependencies:
esbuild: 0.25.11
rollup: 4.52.4
rollup: 4.52.5
unplugin: 2.3.10
vite: 7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1)
@@ -10432,7 +10443,7 @@ snapshots:
fdir: 6.5.0(picomatch@4.0.3)
picomatch: 4.0.3
postcss: 8.5.6
rollup: 4.52.4
rollup: 4.52.5
tinyglobby: 0.2.15
optionalDependencies:
'@types/node': 22.18.11
@@ -10529,7 +10540,7 @@ snapshots:
'@vue/devtools-api': 6.6.4
vue: 3.5.22(typescript@5.9.2)
vue-macros@3.1.1(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(esbuild@0.25.11)(rollup@4.52.4)(typescript@5.9.2)(vite@7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2)):
vue-macros@3.1.1(@vueuse/core@13.9.0(vue@3.5.22(typescript@5.9.2)))(esbuild@0.25.11)(rollup@4.52.5)(typescript@5.9.2)(vite@7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))(vue-tsc@3.1.1(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2)):
dependencies:
'@vue-macros/better-define': 3.1.1(vue@3.5.22(typescript@5.9.2))
'@vue-macros/boolean-prop': 3.1.1(vue@3.5.22(typescript@5.9.2))
@@ -10561,7 +10572,7 @@ snapshots:
'@vue-macros/short-vmodel': 3.1.1(vue@3.5.22(typescript@5.9.2))
'@vue-macros/volar': 3.1.1(typescript@5.9.2)(vue-tsc@3.1.1(typescript@5.9.2))(vue@3.5.22(typescript@5.9.2))
unplugin: 2.3.10
unplugin-combine: 2.1.2(esbuild@0.25.11)(rollup@4.52.4)(unplugin@2.3.10)(vite@7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))
unplugin-combine: 2.1.2(esbuild@0.25.11)(rollup@4.52.5)(unplugin@2.3.10)(vite@7.1.10(@types/node@22.18.11)(jiti@2.6.1)(lightningcss@1.30.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)(yaml@2.8.1))
unplugin-vue-define-options: 3.1.1(vue@3.5.22(typescript@5.9.2))
vue: 3.5.22(typescript@5.9.2)
transitivePeerDependencies:

View File

@@ -1,3 +1,4 @@
import type { ManualChunkMeta, PreRenderedAsset } from 'rollup';
import { fileURLToPath, URL } from 'node:url';
import { createViteProxy } from 'utils4u/vite';
import { defineConfig, loadEnv } from 'vite';
@@ -5,7 +6,7 @@ import { optimizeDeps } from './vite.config.optimizeDeps';
import { Plugins } from './vite.config.plugins';
// https://vite.dev/config/
export default defineConfig(({ command, mode }) => {
export default defineConfig(async ({ command, mode }) => {
const isBuild = command === 'build';
const env = loadEnv(mode, process.cwd());
@@ -21,29 +22,82 @@ export default defineConfig(({ command, mode }) => {
if (warning.code === 'EVAL' && warning.id?.includes('node_modules/protobufjs')) return;
warn(warning);
}, */
output: {
// Keep hashed file names predictable across entry, chunk, and asset outputs.
entryFileNames: 'assets/[name].[hash].js',
chunkFileNames: 'assets/[name].[hash].js',
entryFileNames: '_entry/[name].[hash].js',
chunkFileNames: '_chunk/[name].[hash].js',
// https://cn.rollupjs.org/configuration-options/#output-assetfilenames
assetFileNames: (assetInfo) => {
if (assetInfo.names.length > 1) {
console.warn('Multiple names for asset:', assetInfo);
assetFileNames(chunkInfo: PreRenderedAsset) {
const names = chunkInfo.names;
if (names.length !== 1) {
console.error('Multiple names for asset:', chunkInfo);
process.exit(1);
}
const assetName =
assetInfo.names.find(Boolean) ?? assetInfo.originalFileNames.find(Boolean) ?? '';
const assetName = names[0];
const ext = assetName.split('.').pop()?.toLowerCase();
if (ext && /png|jpe?g|gif|svg|webp|avif/.test(ext)) {
return 'assets/images/[name].[hash][extname]';
return 'chunks/images/[name].[hash][extname]';
}
if (ext && /woff2?|ttf|otf/.test(ext)) {
return 'assets/fonts/[name].[hash][extname]';
return 'chunks/fonts/[name].[hash][extname]';
}
if (ext === 'css') {
return 'assets/css/[name].[hash][extname]';
return 'chunks/css/[name].[hash][extname]';
}
return '_chunks/[name].[hash][extname]';
},
// https://www.npmjs.com/package/utils4u/v/2.19.2?activeTab=code
manualChunks: (id: string, meta: ManualChunkMeta) => {
if (id.includes('node_modules')) {
// 处理 pnpm 的特殊路径结构
let packageName;
if (id.includes('.pnpm')) {
// pnpm 路径: .pnpm/naive-ui@2.43.1_vue@3.5.22/node_modules/naive-ui/...
const pnpmMatch = id.match(/\.pnpm\/(.+?)@/);
if (pnpmMatch) {
packageName = pnpmMatch[1];
}
} else {
// 普通路径: node_modules/lodash/...
const normalMatch = id.match(/node_modules\/(@[^/]+\/[^/]+|[^/]+)\//);
if (normalMatch) {
packageName = normalMatch[1];
}
}
if (packageName) {
// 根据包名分组
if (packageName.includes('naive-ui')) {
return 'naive-ui';
}
if (packageName.includes('lodash')) {
return 'lodash';
}
if (packageName.includes('@juggle+resize-observer')) {
return 'resize-observer';
}
if (packageName.includes('date-fns')) {
return 'date-fns';
}
if (
['primelocale', 'primevue', '@primeuix'].some((name) =>
packageName!.includes(name),
)
) {
return 'primevue';
}
// console.log('packageName :>> ', packageName);
// console.log('id :>> ', id);
if (['vue', 'vue-router', 'pinia', 'vue-demi'].includes(packageName)) {
return 'vue-vendor';
}
// return 'vendor';
}
}
return 'assets/[name].[hash][extname]';
},
// // Split key dependency groups to improve long-term caching.
// manualChunks: (id) => {

View File

@@ -3,7 +3,7 @@ import { mergeConfig, defineConfig, configDefaults } from 'vitest/config';
import viteConfig from './vite.config';
export default mergeConfig(
viteConfig({
await viteConfig({
command: 'build',
mode: 'test',
}),