| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- import { defineConfig } from 'vite'
- import * as path from 'path'
- import * as dotenv from 'dotenv'
- import * as fs from 'fs'
- import vue from '@vitejs/plugin-vue'
- const NODE_ENV = process.env.NODE_ENV || 'development'
- const envFile = `.env.${NODE_ENV}`
- const envConfig = dotenv.parse(fs.readFileSync(envFile))
- for (const k in envConfig) {
- process.env[k] = envConfig[k]
- }
- let alias = {
- '@': path.resolve(__dirname, './src'),
- 'vue$': 'vue/dist/vue.runtime.esm-bundler.js',
- }
- const conf = {
- base: './', // index.html文件所在位置
- root: './', // js导入的资源路径,src
- server: {
- open: true,
- port: process.env.VITE_DEV_PORT,
- proxy: {
- [process.env.VITE_SERVER_API]: {
- target: process.env.VITE_SERVER_PATH,
- // rewrite: path => path.replace(/^\/api/, '/api'), //为了模拟
- changeOrigin: true,
- },
- },
- },
- build: {
- target: 'es2020',
- minify: 'esbuild', // 是否进行压缩,boolean | 'terser' | 'esbuild',默认使用 esbuild
- manifest: false, // 是否产出maifest.json
- sourcemap: false, // 是否产出soucemap.json
- emptyOutDir: true,
- outDir: 'dist', // 产出目录
- rollupOptions: {
- output: {
- manualChunks (id) {
- if (id.includes('node_modules')) {
- const arr = id.toString().split('node_modules/')[1].split('/')
- switch (arr[0]) {
- case '@popperjs':
- case '@vue':
- case 'axios':
- case 'element-plus':
- case '@element-plus':
- return '_' + arr[0]
- default :
- return '__vendor'
- }
- }else if(id.includes('Gwen-admin/src')){
- //src 下的都打包到一起 不然很多小文件
- return 'gwen'
- }
- },
- chunkFileNames: 'static/chunk/[name]-[hash].js',
- entryFileNames: 'static/entry/[name]-[hash].js',
- assetFileNames: 'static/[ext]/[name]-[hash].[ext]'
- },
- },
- },
- css: {
- preprocessorOptions: {
- scss: {
- javascriptEnabled: true,
- },
- },
- },
- resolve: {
- alias,
- },
- plugins: [
- vue(),
- ],
- }
- // https://vitejs.dev/config/
- export default defineConfig(conf)
|