| | |
| | | import { defineConfig, loadEnv } from 'vite'; |
| | | import { resolve } from 'path'; |
| | | import createVitePlugins from './vite/plugins'; |
| | | /* |
| | | * @Author: shuishen 1109946754@qq.com |
| | | * @Date: 2025-04-10 11:19:47 |
| | | * @LastEditors: shuishen 1109946754@qq.com |
| | | * @LastEditTime: 2025-04-10 12:23:50 |
| | | * @FilePath: \drone-web-manage\vite.config.mjs |
| | | * @Description: |
| | | * |
| | | * Copyright (c) 2025 by shuishen, All Rights Reserved. |
| | | */ |
| | | import { defineConfig, loadEnv } from 'vite' |
| | | import { resolve } from 'path' |
| | | import createVitePlugins from './vite/plugins' |
| | | |
| | | // https://vitejs.dev/config/ |
| | | export default ({ mode, command }) => { |
| | | const env = loadEnv(mode, process.cwd()); |
| | | const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL } = env; |
| | | // 判断是打生产环境包 |
| | | const isProd = VITE_APP_ENV === 'production'; |
| | | const env = loadEnv(mode, process.cwd()) |
| | | const { VITE_APP_ENV, VITE_APP_BASE, VITE_APP_URL } = env |
| | | // 判断是打生产环境包 |
| | | const isProd = VITE_APP_ENV === 'production' |
| | | |
| | | // 根据是否生产环境,动态设置压缩配置 |
| | | const buildConfig = { |
| | | outDir: 'manage', |
| | | target: 'esnext', |
| | | minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具 |
| | | }; |
| | | |
| | | // 如果是生产环境,添加Terser的配置 |
| | | if (isProd) { |
| | | buildConfig.terserOptions = { |
| | | compress: { |
| | | drop_console: true, // 删除 console |
| | | drop_debugger: true, // 删除 debugger |
| | | }, |
| | | format: { |
| | | comments: false, // 删除所有注释 |
| | | }, |
| | | }; |
| | | } |
| | | return defineConfig({ |
| | | base: VITE_APP_BASE, |
| | | define: { |
| | | __VUE_I18N_FULL_INSTALL__: true, |
| | | __VUE_I18N_LEGACY_API__: true, |
| | | __INTLIFY_PROD_DEVTOOLS__: false, |
| | | }, |
| | | server: { |
| | | // port: 2888, |
| | | // host: '192.168.1.178', |
| | | proxy: { |
| | | '/api': { |
| | | // target: 'http://localhost', |
| | | target: VITE_APP_URL, |
| | | changeOrigin: true, |
| | | rewrite: path => path.replace(/^\/api/, ''), |
| | | }, |
| | | }, |
| | | }, |
| | | resolve: { |
| | | alias: { |
| | | '~': resolve(__dirname, './'), |
| | | '@': resolve(__dirname, './src'), |
| | | components: resolve(__dirname, './src/components'), |
| | | styles: resolve(__dirname, './src/styles'), |
| | | utils: resolve(__dirname, './src/utils'), |
| | | }, |
| | | }, |
| | | plugins: createVitePlugins(env, command === 'build'), |
| | | build: buildConfig, |
| | | optimizeDeps: { |
| | | esbuildOptions: { |
| | | // 根据是否生产环境,动态设置压缩配置 |
| | | const buildConfig = { |
| | | outDir: 'manage', |
| | | target: 'esnext', |
| | | }, |
| | | }, |
| | | }); |
| | | }; |
| | | minify: isProd ? 'terser' : 'esbuild', // 根据环境选择压缩工具 |
| | | } |
| | | |
| | | // 如果是生产环境,添加Terser的配置 |
| | | if (isProd) { |
| | | buildConfig.terserOptions = { |
| | | compress: { |
| | | drop_console: true, // 删除 console |
| | | drop_debugger: true, // 删除 debugger |
| | | }, |
| | | format: { |
| | | comments: false, // 删除所有注释 |
| | | }, |
| | | } |
| | | } |
| | | return defineConfig({ |
| | | base: VITE_APP_BASE, |
| | | define: { |
| | | __VUE_I18N_FULL_INSTALL__: true, |
| | | __VUE_I18N_LEGACY_API__: true, |
| | | __INTLIFY_PROD_DEVTOOLS__: false, |
| | | }, |
| | | server: { |
| | | // port: 2888, |
| | | // host: '192.168.1.178', |
| | | proxy: { |
| | | '/api': { |
| | | // target: 'http://localhost', |
| | | target: VITE_APP_URL, |
| | | changeOrigin: true, |
| | | rewrite: path => path.replace(/^\/api/, ''), |
| | | }, |
| | | }, |
| | | }, |
| | | resolve: { |
| | | alias: { |
| | | '~': resolve(__dirname, './'), |
| | | '@': resolve(__dirname, './src'), |
| | | components: resolve(__dirname, './src/components'), |
| | | styles: resolve(__dirname, './src/styles'), |
| | | utils: resolve(__dirname, './src/utils'), |
| | | }, |
| | | }, |
| | | plugins: createVitePlugins(env, command === 'build'), |
| | | build: buildConfig, |
| | | optimizeDeps: { |
| | | esbuildOptions: { |
| | | target: 'esnext', |
| | | }, |
| | | }, |
| | | }) |
| | | } |