import vue from '@vitejs/plugin-vue'
|
// config alias
|
import path from 'path'
|
import { ConfigEnv, defineConfig, UserConfigExport, loadEnv } from 'vite'
|
import ViteComponents, { AntDesignVueResolver } from 'vite-plugin-components'
|
// Introduce eslint plugin
|
import eslintPlugin from 'vite-plugin-eslint'
|
import OptimizationPersist from 'vite-plugin-optimize-persist'
|
import PkgConfig from 'vite-plugin-package-config'
|
import viteSvgIcons from 'vite-plugin-svg-icons'
|
import { viteVConsole } from 'vite-plugin-vconsole'
|
import cesium from 'vite-plugin-cesium'
|
// autoImport
|
import AutoImport from 'unplugin-auto-import/vite'
|
import { CURRENT_CONFIG } from './src/api/http/config'
|
// https://vitejs.dev/config/
|
export default defineConfig(({ command, mode }) => {
|
// 添加第三个参数空字符串时 '' ,会在env中包含所有环境变量;反之,只包含.env文件中配置的环境变量
|
const env = loadEnv(mode, process.cwd() + '/env')
|
// eslint-disable-next-line no-useless-escape
|
return {
|
plugins: [
|
vue(),
|
cesium(),
|
eslintPlugin({
|
fix: true
|
}),
|
ViteComponents({
|
customComponentResolvers: [AntDesignVueResolver()],
|
}),
|
viteSvgIcons({
|
// 指定需要缓存的图标文件夹
|
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
|
// 指定symbolId格式
|
symbolId: 'icon-[dir]-[name]',
|
}),
|
viteVConsole({
|
entry: path.resolve(__dirname, './src/main.ts'), // 入口文件
|
localEnabled: command === 'serve', // serve开发环境下
|
// enabled: command !== 'serve' || mode === 'test', // 打包环境下/发布测试包,
|
config: { // vconsole 配置项
|
maxLogNumber: 1000,
|
theme: 'light'
|
}
|
}),
|
AutoImport({
|
dts: 'types/auto-imports.d.ts',
|
imports: ['vue', 'vue-router'],
|
// 解决eslint报错问题
|
eslintrc: {
|
// 这里先设置成true然后npm run dev 运行之后会生成 .eslintrc-auto-import.json 文件之后,在改为false
|
enabled: false,
|
filepath: './.eslintrc-auto-import.json', // 生成的文件路径
|
globalsPropValue: true,
|
},
|
}),
|
PkgConfig(),
|
OptimizationPersist()
|
// [svgBuilder('./src/assets/icons/')] // All svg under src/icons/svg/ have been imported here, no need to import separately
|
],
|
server: {
|
open: true,
|
host: '0.0.0.0',
|
port: 8080,
|
proxy: {
|
[env.VITE_BASE_API]: {
|
// 代理请求之后的请求地址(你的真实接口地址)
|
target: env.VITE_API_URL,
|
rewrite: path => path.replace(new RegExp(`^${env.VITE_BASE_API}`), ''),
|
// 跨域
|
changeOrigin: true
|
}
|
}
|
},
|
envDir: './env',
|
resolve: {
|
alias: [{
|
// https://github.com/vitejs/vite/issues/279#issuecomment-635646269
|
find: '/@',
|
replacement: path.resolve(__dirname, './src'),
|
}
|
]
|
},
|
css: {
|
preprocessorOptions: {
|
scss: {
|
// example : additionalData: `@import "./src/design/styles/variables";`
|
// dont need include file extend .scss
|
additionalData: '@import "./src/styles/variables";'
|
},
|
}
|
},
|
base: './',
|
build: {
|
target: ['es2015'], // 最低支持 es2015
|
sourcemap: true
|
}
|
}
|
})
|
// export default ({ command, mode }: ConfigEnv): UserConfigExport => defineConfig({
|
// plugins: [
|
// vue(),
|
// cesium(),
|
// eslintPlugin({
|
// fix: true
|
// }),
|
// ViteComponents({
|
// customComponentResolvers: [AntDesignVueResolver()],
|
// }),
|
// viteSvgIcons({
|
// // 指定需要缓存的图标文件夹
|
// iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
|
// // 指定symbolId格式
|
// symbolId: 'icon-[dir]-[name]',
|
// }),
|
// viteVConsole({
|
// entry: path.resolve(__dirname, './src/main.ts'), // 入口文件
|
// localEnabled: command === 'serve', // serve开发环境下
|
// // enabled: command !== 'serve' || mode === 'test', // 打包环境下/发布测试包,
|
// config: { // vconsole 配置项
|
// maxLogNumber: 1000,
|
// theme: 'light'
|
// }
|
// }),
|
// AutoImport({
|
// dts: 'types/auto-imports.d.ts',
|
// imports: ['vue', 'vue-router'],
|
// // 解决eslint报错问题
|
// eslintrc: {
|
// // 这里先设置成true然后npm run dev 运行之后会生成 .eslintrc-auto-import.json 文件之后,在改为false
|
// enabled: false,
|
// filepath: './.eslintrc-auto-import.json', // 生成的文件路径
|
// globalsPropValue: true,
|
// },
|
// }),
|
// PkgConfig(),
|
// OptimizationPersist()
|
// // [svgBuilder('./src/assets/icons/')] // All svg under src/icons/svg/ have been imported here, no need to import separately
|
// ],
|
// server: {
|
// open: true,
|
// host: '0.0.0.0',
|
// port: 8080,
|
// proxy: {
|
// '/uav': {
|
// // 代理请求之后的请求地址(你的真实接口地址)
|
// target: CURRENT_CONFIG.baseURL,
|
// rewrite: path => path.replace(/^\/uav/, ''),
|
// // 跨域
|
// changeOrigin: true
|
// }
|
// }
|
// },
|
// envDir: './env',
|
// resolve: {
|
// alias: [{
|
// // https://github.com/vitejs/vite/issues/279#issuecomment-635646269
|
// find: '/@',
|
// replacement: path.resolve(__dirname, './src'),
|
// }
|
// ]
|
// },
|
// css: {
|
// preprocessorOptions: {
|
// scss: {
|
// // example : additionalData: `@import "./src/design/styles/variables";`
|
// // dont need include file extend .scss
|
// additionalData: '@import "./src/styles/variables";'
|
// },
|
// }
|
// },
|
// base: './',
|
// build: {
|
// target: ['es2015'], // 最低支持 es2015
|
// sourcemap: true
|
// }
|
// })
|