Files
ylst-h5/vite.config.ts
Huangzhe bff8dda1d4 feat: 优化组件和页面功能
- 新增 YlSwiper 轮播组件,基于 swiper 库实现,支持自定义渲染和多种配置项
- 优化 YlTable 组件,提升表格渲染性能和使用体验
- 优化 LogicInfo 组件,修复数据为空时的显示问题,使用 currentTabs 替代重复的计算属性
- 优化 AnalysisInfo 组件,移除冗余类型转换
- 新增问卷列表组件 QuestionList,用于展示任务相关问卷
- 更新 vite 配置,支持 swiper 自定义元素
- 添加 swiper 依赖包
2025-05-21 11:05:00 +08:00

99 lines
2.8 KiB
TypeScript

/// <reference types="vitest" />
import { defineConfig, loadEnv } from 'vite'; // 从 vite 导入 loadEnv
import vue from '@vitejs/plugin-vue';
import { fileURLToPath, URL } from 'node:url';
import vueJsx from '@vitejs/plugin-vue-jsx';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver, VantResolver } from 'unplugin-vue-components/resolvers';
import postCssPxToRem from 'postcss-pxtorem';
import legacy from '@vitejs/plugin-legacy';
// shift + alt 快速定位到对应组件
import { codeInspectorPlugin } from 'code-inspector-plugin';
// 导入 dev tools
import vueDevTools from 'vite-plugin-vue-devtools'
export default defineConfig(({ mode }) => {
// 接收 mode 参数
// 正确加载环境变量
const env = loadEnv(mode, process.cwd());
// 从 env 对象中获取变量
const proxyUrl = env.VITE_APP_BASEURL;
const proxyUrlDelivery = env.VITE_APP_DELIVERY_BASEURL;
return {
// 必须 return 配置对象
server: {
host: '0.0.0.0',
port: 3000,
proxy: {
'/backend-api': {
target: proxyUrl,
changeOrigin: true,
pathRewrite: {
'^/backend-api': '' // 路径重写
},
// bypass: (req) => req.headers.accept?.indexOf('html') !== -1, // 跳过 HTML 请求
cookieDomainRewrite: 'localhost'
},
'/request-java': {
target: `${proxyUrlDelivery}/api`,
changeOrigin: true,
pathRewrite: { '^/request-java': '' }
}
}
},
css: {
postcss: {
plugins: [
postCssPxToRem({
rootValue: 37.5,
propList: ['*']
})
]
},
preprocessorOptions: {
scss: { api: 'modern-compiler' }
}
},
build: {
target: 'es2015',
minify: 'terser',
terserOptions: {
compress: {
drop_console: true,
drop_debugger: true
}
}
},
cacheDir: '.tmp',
plugins: [
vueDevTools(),
vue({
template: {
compilerOptions: {
// 将 swiper 相关标签注册为自定义元素
isCustomElement: (tag) => tag.startsWith('swiper-')
}
}
}),
vueJsx(),
AutoImport({ resolvers: [VantResolver(), ElementPlusResolver()] }),
Components({ resolvers: [VantResolver(), ElementPlusResolver()] }),
legacy({
targets: ['ie >= 11', 'chrome >= 49', 'safari >= 11.1'],
additionalLegacyPolyfills: ['regenerator-runtime/runtime']
}),
codeInspectorPlugin({
bundler: 'vite'
})
// tailwindcss()
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
}
}
};
});