Files
cody-crm/frontend/packages/mobile/config/vite.config.base.ts
wangziqi 72e2110987
Some checks failed
Synchronize to Gitee / repo-sync (push) Has been cancelled
Typos Checking / Spell Check with Typos (push) Has been cancelled
chore: initial commit
2026-06-23 11:56:23 +08:00

100 lines
3.0 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import { VantResolver } from '@vant/auto-import-resolver';
import vue from '@vitejs/plugin-vue';
import vueJsx from '@vitejs/plugin-vue-jsx';
import autoprefixer from 'autoprefixer';
import { resolve } from 'path';
import postcssPxtorem from 'postcss-pxtorem';
import tailwindcss from 'tailwindcss';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { defineConfig } from 'vite';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import vueSetupExtend from 'vite-plugin-vue-setup-extend';
import svgLoader from 'vite-svg-loader';
export default defineConfig({
base: '/mobile/',
plugins: [
vue(),
vueJsx(),
vueSetupExtend(),
svgLoader({ svgoConfig: {} }),
createSvgIconsPlugin({
// 指定需要缓存的图标文件夹
iconDirs: [resolve(process.cwd(), 'src/assets/svg'), resolve(process.cwd(), 'public/images')], // 与本地储存地址一致
// 指定symbolId格式
symbolId: 'icon-[name]',
}),
AutoImport({
dts: 'src/auto-import.d.ts',
include: [
/\.[tj]sx?$/, // .ts, .tsx, .js, .jsx
/\.vue$/,
/\.vue\?vue/, // .vue
],
imports: ['vue'],
resolvers: [VantResolver()],
eslintrc: {
enabled: true,
},
}),
Components({
resolvers: [VantResolver()],
}),
],
resolve: {
alias: [
{
find: '@locale',
replacement: resolve(__dirname, '../src/locale'),
},
{
find: '@',
replacement: resolve(__dirname, '../src'),
},
{
find: 'vue-i18n',
replacement: 'vue-i18n/dist/vue-i18n.esm-bundler.js', // 解决 vue-i18n 依赖包报错
},
{
find: 'vue',
replacement: 'vue/dist/vue.esm-bundler.js', // compile template
},
],
extensions: ['.ts', '.js', '.jsx', '.tsx', '.json', '.vue', '.mjs'],
},
define: {
'process.env': {},
// 定义特性标志
'__VUE_OPTIONS_API__': true,
'__VUE_PROD_DEVTOOLS__': false,
// 设置hydration不匹配详细信息的标志
'__VUE_PROD_HYDRATION_MISMATCH_DETAILS__': true,
},
css: {
postcss: {
plugins: [
postcssPxtorem({
rootValue: 14, // 基准值1rem
propList: ['*'], // 需要转换的属性,`*` 表示所有属性都转换
unitPrecision: 5, // 转换后保留的小数位数
selectorBlackList: ['.no-rem'], // 忽略的选择器,例如 `.no-rem` 类名的样式不会被转换
replace: true, // 替换规则,而不是添加回退
mediaQuery: false, // 是否允许在媒体查询中转换
minPixelValue: 2, // 小于或等于 2px 的值不转换为 rem
}),
tailwindcss(),
autoprefixer(),
],
},
preprocessorOptions: {
less: {
modifyVars: {
hack: `true; @import (reference) "${resolve('src/assets/style/var.less')}";`,
},
javascriptEnabled: true,
},
},
},
});