4 Commits

Author SHA1 Message Date
typist
b4ba7a2219 0.0.22
All checks were successful
Build and Push Docker Image / build (push) Successful in 1m52s
2025-10-29 09:11:11 +08:00
typist
25e42e3af5 fix: update caching strategy for ipinfo API in Vite config
- Changed caching handler from 'NetworkFirst' to 'CacheFirst' for improved performance.
- Extended cache expiration time from 5 minutes to 1 hour to enhance data availability.
2025-10-29 09:10:59 +08:00
typist
4398b53ea7 0.0.21
All checks were successful
Build and Push Docker Image / build (push) Successful in 1m14s
2025-10-29 09:07:27 +08:00
typist
3e14bc652f feat: add terser for advanced minification and improve React chunking
- Added terser as a dependency for enhanced code minification.
- Updated Vite configuration to enable aggressive minification using terser with options to drop console logs and unused code.
- Refined manual chunking for React libraries to improve code splitting and loading efficiency.
2025-10-29 09:06:56 +08:00
3 changed files with 33 additions and 8 deletions

View File

@@ -1,7 +1,7 @@
{ {
"name": "litek", "name": "litek",
"private": true, "private": true,
"version": "0.0.20", "version": "0.0.22",
"type": "module", "type": "module",
"scripts": { "scripts": {
"dev": "vite", "dev": "vite",
@@ -44,6 +44,7 @@
"eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-hooks": "^5.2.0",
"eslint-plugin-react-refresh": "^0.4.22", "eslint-plugin-react-refresh": "^0.4.22",
"globals": "^16.4.0", "globals": "^16.4.0",
"terser": "^5.44.0",
"tsx": "^4.19.2", "tsx": "^4.19.2",
"tw-animate-css": "^1.4.0", "tw-animate-css": "^1.4.0",
"typescript": "~5.9.3", "typescript": "~5.9.3",

3
pnpm-lock.yaml generated
View File

@@ -96,6 +96,9 @@ importers:
globals: globals:
specifier: ^16.4.0 specifier: ^16.4.0
version: 16.4.0 version: 16.4.0
terser:
specifier: ^5.44.0
version: 5.44.0
tsx: tsx:
specifier: ^4.19.2 specifier: ^4.19.2
version: 4.20.6 version: 4.20.6

View File

@@ -32,12 +32,12 @@ export default defineConfig({
runtimeCaching: [ runtimeCaching: [
{ {
urlPattern: /^https:\/\/ipinfo\.io\/.*/i, urlPattern: /^https:\/\/ipinfo\.io\/.*/i,
handler: 'NetworkFirst', handler: 'CacheFirst', // 改为 CacheFirst优先使用缓存
options: { options: {
cacheName: 'ipinfo-cache', cacheName: 'ipinfo-cache',
expiration: { expiration: {
maxEntries: 10, maxEntries: 10,
maxAgeSeconds: 60 * 5 // 5 分钟 maxAgeSeconds: 60 * 60 // 延长到 1 小时
}, },
cacheableResponse: { cacheableResponse: {
statuses: [0, 200] statuses: [0, 200]
@@ -60,11 +60,15 @@ export default defineConfig({
rollupOptions: { rollupOptions: {
output: { output: {
manualChunks: (id) => { manualChunks: (id) => {
// React核心 // React 核心拆分得更细
if (id.includes('node_modules/react') || if (id.includes('node_modules/react/') && !id.includes('node_modules/react-dom')) {
id.includes('node_modules/react-dom') || return 'react-core';
id.includes('node_modules/react-router-dom')) { }
return 'react-vendor'; if (id.includes('node_modules/react-dom/')) {
return 'react-dom';
}
if (id.includes('node_modules/react-router-dom')) {
return 'react-router';
} }
// Radix UI组件 // Radix UI组件
if (id.includes('node_modules/@radix-ui')) { if (id.includes('node_modules/@radix-ui')) {
@@ -74,9 +78,26 @@ export default defineConfig({
if (id.includes('node_modules/lucide-react')) { if (id.includes('node_modules/lucide-react')) {
return 'icons'; return 'icons';
} }
// 其他工具库
if (id.includes('node_modules/')) {
return 'vendor';
}
}, },
}, },
}, },
// 启用更激进的压缩
minify: 'terser',
terserOptions: {
compress: {
drop_console: true,
drop_debugger: true,
pure_funcs: ['console.log'],
// 移除未使用的代码
unused: true,
// 移除死代码
dead_code: true,
},
},
chunkSizeWarningLimit: 500, chunkSizeWarningLimit: 500,
}, },
}) })