| | |
| | | }, |
| | | rollupOptions: { |
| | | output: { |
| | | entryFileNames: "build/js/[name].[hash:6].js", |
| | | chunkFileNames: "build/js/vendor/[name].[hash:8].js", |
| | | assetFileNames(chunkInfo) { |
| | | // css 文件 |
| | | if (chunkInfo?.name?.endsWith(".css")) { |
| | | return "build/css/[name]-[hash][extname]"; |
| | | } |
| | | // 图片文件 |
| | | if ( |
| | | [".png", ".jpg", ".jpeg", ".gif", ".svg", ".webp"].some((ext) => |
| | | chunkInfo?.name?.endsWith(ext) |
| | | ) |
| | | ) { |
| | | return "build/img/[name]-[hash][extname]"; |
| | | } |
| | | // 其他文件 |
| | | return "build/assets/[name]-[hash][extname]"; |
| | | }, |
| | | // 分包 |
| | | manualChunks(id) { |
| | | console.log("🚀 ~ manualChunks ~ id:", id); |
| | | if (id.includes("node_modules")) { |
| | | return "vendor"; |
| | | } |
| | | }, |
| | | assetFileNames: (assetInfo) => { |
| | | if (assetInfo.name.endsWith(".css")) { |
| | | return "build/css/[name].[hash][extname]"; |
| | | if (id.includes("src/utils/i18n")) { |
| | | return "i18n"; |
| | | } |
| | | if (/\.(png|jpe?g|gif|svg|webp|ico)$/.test(assetInfo.name)) { |
| | | return "build/img/[name].[hash][extname]"; |
| | | } |
| | | return "build/assets/[name].[hash][extname]"; |
| | | }, |
| | | // js 文件 |
| | | entryFileNames: "build/scripts/[name]-[hash].js", |
| | | chunkFileNames: "build/scripts/[name]-[hash].js", |
| | | }, |
| | | }, |
| | | }, |