| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- import path from 'path'
- import type { PluginOption } from 'vite'
- import { defineConfig, loadEnv } from 'vite'
- import vue from '@vitejs/plugin-vue'
- import { VitePWA } from 'vite-plugin-pwa'
- import viteImagemin from 'vite-plugin-imagemin'
- import { createHtmlPlugin } from 'vite-plugin-html'
- function setupPlugins(env: ImportMetaEnv): PluginOption[] {
- return [
- vue(),
- viteImagemin({
- gifsicle: {
- optimizationLevel: 7,
- interlaced: false
- },
- optipng: false,
- mozjpeg: {
- quality: 80
- },
- pngquant: {
- quality: [0.5, 0.9],
- speed: 1
- },
- svgo: {
- plugins: [
- {
- name: 'removeViewBox'
- },
- {
- name: 'removeEmptyAttrs',
- active: false
- }
- ]
- },
- webp: false
- }),
- env.VITE_GLOB_APP_PWA === 'true' &&
- VitePWA({
- injectRegister: 'auto',
- manifest: {
- name: 'chatGPT',
- short_name: 'chatGPT',
- icons: [
- { src: 'pwa-192x192.png', sizes: '192x192', type: 'image/png' },
- { src: 'pwa-512x512.png', sizes: '512x512', type: 'image/png' }
- ]
- }
- })
- ]
- }
- export default defineConfig(env => {
- const viteEnv = loadEnv(env.mode, process.cwd()) as unknown as ImportMetaEnv
- return {
- base: viteEnv.VITE_GLOB_APP_PUBLIC_PATH,
- resolve: {
- alias: {
- '@': path.resolve(process.cwd(), 'src')
- }
- },
- plugins: [
- ...setupPlugins(viteEnv),
- createHtmlPlugin({
- inject: {
- data: {
- baseUrl: viteEnv.VITE_GLOB_APP_PUBLIC_PATH
- }
- }
- })
- ],
- server: {
- host: '0.0.0.0',
- port: 5004,
- open: false
- },
- css: {
- preprocessorOptions: {
- less: {
- javascriptEnabled: true,
- additionalData: '@import "@/styles/common.less";'
- }
- }
- },
- build: {
- outDir: viteEnv.VITE_ORG_MODE === 'true' ? 'dist-org' : 'dist',
- reportCompressedSize: false,
- sourcemap: false,
- commonjsOptions: {
- ignoreTryCatch: false
- }
- }
- }
- })
|