79 lines
2.1 KiB
TypeScript
79 lines
2.1 KiB
TypeScript
import { fileURLToPath, URL } from 'node:url'
|
||
|
||
import { defineConfig, loadEnv } from 'vite'
|
||
import vue from '@vitejs/plugin-vue'
|
||
import AutoImport from 'unplugin-auto-import/vite'
|
||
import Components from 'unplugin-vue-components/vite'
|
||
import DefineOptions from 'unplugin-vue-define-options/vite'
|
||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
|
||
import path from 'path'
|
||
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
|
||
|
||
// console.log(process)
|
||
// console.log(import.meta.env.VITE_APP_URL)
|
||
|
||
// https://vitejs.dev/config/
|
||
|
||
export default defineConfig(({ mode }) => {
|
||
const env = loadEnv(mode, process.cwd())
|
||
|
||
return {
|
||
plugins: [
|
||
vue(),
|
||
DefineOptions(),
|
||
// ...
|
||
AutoImport({
|
||
resolvers: [ElementPlusResolver()],
|
||
}),
|
||
Components({
|
||
resolvers: [ElementPlusResolver()],
|
||
}),
|
||
createSvgIconsPlugin({
|
||
// 指定需要缓存的图标文件夹
|
||
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
|
||
// 指定symbolId格式
|
||
symbolId: 'icon-[dir]-[name]',
|
||
inject: 'body-last' // 注入位置优化
|
||
})
|
||
],
|
||
define: {
|
||
__VUE_PROD_HYDRATION_MISMATCH_DETAILS__: false,
|
||
},
|
||
css: {
|
||
preprocessorOptions: {
|
||
less: {
|
||
modifyVars: {
|
||
'primary-color': '#ec6800'
|
||
},
|
||
javascriptEnabled: true,
|
||
// 全局导入less变量文件
|
||
additionalData: `@import "${path.resolve(__dirname, 'src/assets/css/style.less')}";`
|
||
}
|
||
}
|
||
},
|
||
resolve: {
|
||
alias: {
|
||
'@': fileURLToPath(new URL('./src', import.meta.url)),
|
||
_c: fileURLToPath(new URL('./src/components', import.meta.url))
|
||
}
|
||
},
|
||
server: {
|
||
host: '0.0.0.0', // 允许局域网内的IP访问
|
||
port: 8060, // 根据环境设置端口
|
||
open: false, // 自动打开浏览器
|
||
strictPort: false, // 如果端口已被占用,则尝试下一个可用端口
|
||
hmr: {
|
||
overlay: true
|
||
},
|
||
proxy: {
|
||
'/api': {
|
||
//'/api'是自行设置的请求前缀
|
||
target: env.VITE_APP_URL,
|
||
changeOrigin: true, //用于控制请求头中的host值
|
||
rewrite: (path) => path.replace(/^\/api/, '/api') //路径重写,(正则)匹配以api开头的路径为空(将请求前缀删除)
|
||
}
|
||
}
|
||
}
|
||
}
|
||
})
|