101 lines
2.9 KiB
TypeScript
101 lines
2.9 KiB
TypeScript
import { fileURLToPath, URL } from 'node:url'
|
||
import { resolve } from 'node:path'
|
||
|
||
import { defineConfig } from 'vite'
|
||
import vue from '@vitejs/plugin-vue'
|
||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
||
import vueDevTools from 'vite-plugin-vue-devtools'
|
||
import postcssPresetEnv from 'postcss-preset-env'
|
||
import postcssNormalizeCharset from 'postcss-normalize-charset'
|
||
import autoprefixer from 'autoprefixer'
|
||
|
||
function pathResolve(dir: string) {
|
||
return resolve(__dirname, dir)
|
||
}
|
||
|
||
const URL_USE = 'http://ip:8088'
|
||
|
||
export default defineConfig({
|
||
base: './',
|
||
server: {
|
||
host: true,
|
||
port: 3019, // 指定端口
|
||
strictPort: false, // 如果端口已被占用则退出
|
||
proxy: {
|
||
'/api': {
|
||
target: URL_USE,
|
||
changeOrigin: true, // 修改请求的 origin
|
||
rewrite: (path: string) => path, // 可选:重写路径
|
||
},
|
||
'/ollama': {
|
||
target: URL_USE,
|
||
changeOrigin: true, // 修改请求的 origin
|
||
rewrite: (path: string) => path, // 可选:重写路径
|
||
},
|
||
'/openai': {
|
||
target: URL_USE,
|
||
changeOrigin: true, // 修改请求的 origin
|
||
rewrite: (path: string) => path, // 可选:重写路径
|
||
},
|
||
'/ws': {
|
||
target: URL_USE,
|
||
changeOrigin: true, // 修改请求的 origin
|
||
ws: true,
|
||
rewrite: (path: string) => path, // 可选:重写路径
|
||
},
|
||
},
|
||
},
|
||
plugins: [
|
||
vue(),
|
||
vueJsx(),
|
||
vueDevTools(),
|
||
],
|
||
resolve: {
|
||
alias: [
|
||
{
|
||
find: /\@\//,
|
||
replacement: `${pathResolve('src')}/`,
|
||
},
|
||
]
|
||
},
|
||
css: {
|
||
postcss: {
|
||
plugins:[
|
||
postcssPresetEnv(),
|
||
postcssNormalizeCharset({
|
||
add: true,
|
||
}),
|
||
autoprefixer({
|
||
//css兼容前缀
|
||
overrideBrowserslist: [
|
||
'Android 4.1',
|
||
'ios 7.1',
|
||
'Chrome >31',
|
||
'not ie <=11', //不考虑IE浏览器
|
||
'ff >= 30', //仅新版本用'ff >= 30
|
||
'>1%', //全球统计有超过1%的使用了使用'> 1%'
|
||
'last 2 version', //所有主流浏览器最近2个版本
|
||
],
|
||
grid: true, //开启grid布局的兼容(浏览器IE除外其它都能兼容grid,可以关闭开启)
|
||
}),
|
||
// px2rem({
|
||
// rootValue: 19.2, // UI设计稿的宽度/10
|
||
// // rootValue : 37.5,
|
||
// unitPrecision: 3, // 转rem精确到小数点多少位
|
||
// propList: ['*'], // 需要转换的属性 *表示所有
|
||
// selectorBlackList: ['ignore'], // 不进行px转换的选择器
|
||
// replace: true, // 是否直接更换属性值,而不添加备用属性
|
||
// mediaQuery: false, // 是否在媒体查询的css代码中也进行转换
|
||
// minPixelValue: 0, // 设置要替换的最小像素值
|
||
// exclude: /node_modules/i // 排除node_modules文件夹下的文件
|
||
// })
|
||
]
|
||
},
|
||
preprocessorOptions: {
|
||
scss: {
|
||
|
||
},
|
||
},
|
||
}
|
||
})
|