y9-code-generator/vue/y9vue-code-generator/vite.config.js

134 lines
5.4 KiB
Java
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 vue from '@vitejs/plugin-vue';
// 利用插件动态主题模式和预设主题模式
import { themePreprocessorHmrPlugin, themePreprocessorPlugin } from '@zougt/vite-plugin-theme-preprocessor';
import path, { resolve } from 'path';
import AutoImport from 'unplugin-auto-import/vite';
import Icons from 'unplugin-icons/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import Components from 'unplugin-vue-components/vite';
import { defineConfig, loadEnv } from 'vite';
import { vitePluginIconSvg } from './src/layouts/components/IconSvg/plugin';
const prefix = 'VUE_APP';
export default (serve) => {
const ENV = loadEnv(serve.mode, process.cwd(), prefix);
return defineConfig({
base: ENV.VUE_APP_PUBLIC_PATH,
build: {
outDir: ENV.VUE_APP_NAME,
chunkSizeWarningLimit: 1500,
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes('node_modules')) {
return id.toString().split('node_modules/')[1].split('/')[0].toString();
}
}
}
}
},
envPrefix: prefix,
resolve: {
alias: {
'@': resolve(__dirname, 'src')
}
},
server: {
port: 8081,
// host: '192.168.3.222', // 局域网内测试【填写你的当前IP】
proxy: {
'/.*/sso': {
target: process.env.VUE_APP_SSO,
changeOrigin: true,
secure: true,
pathRewrite: { '^/.*/sso': '/sso' }
},
'/boot': {
target: 'http://localhost:8511',
changeOrigin: true
},
'/api': {
target: 'http//192.168.3.218:7056/',
changeOrigin: true
}
},
cors: true
},
plugins: [
vue(),
AutoImport({
imports: ['vue', 'pinia', 'vue-i18n', 'vue-router', '@vueuse/core'],
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [
ElementPlusResolver({
importStyle: 'sass' // 实现element自定义主题 & 切换,这里选择 sass
})
]
}),
Icons({
compiler: 'vue3',
autoInstall: true
}),
vitePluginIconSvg(),
// 创建预设主题切换
themePreprocessorPlugin({
scss: {
// 是否启用任意主题色模式,这里不启用
arbitraryMode: false,
// 提供多组变量文件
multipleScopeVars: [
{
scopeName: 'theme-default',
// 变量文件内容不应该夹带样式代码,设定上只需存在变量
path: path.resolve('src/theme/default/default.scss')
},
{
scopeName: 'theme-green',
path: path.resolve('src/theme/green/green.scss')
},
{
scopeName: 'theme-blue',
path: path.resolve('src/theme/blue/blue.scss')
},
{
scopeName: 'theme-dark',
path: path.resolve('src/theme/dark/dark.scss')
},
{
scopeName: 'theme-red',
path: path.resolve('src/theme/red/red.scss')
}
],
// css中不是由主题色变量生成的颜色也让它抽取到主题css内可以提高权重
includeStyleWithColors: [
{
color: '#ffffff',
// 此类颜色的是否跟随主题色梯度变化默认false
inGradient: true
}
],
// 默认取 multipleScopeVars[0].scopeName
defaultScopeName: '',
// 在生产模式是否抽取独立的主题css文件extract为true以下属性有效
extract: true,
// 独立主题css文件的输出路径默认取 viteConfig.build.assetsDir 相对于 (viteConfig.build.outDir)
outputDir: '',
// 会选取defaultScopeName对应的主题css文件在html添加link
themeLinkTagId: 'head',
// "head"||"head-prepend" || "body" ||"body-prepend"
themeLinkTagInjectTo: 'head',
// 是否对抽取的css文件内对应scopeName的权重类名移除
removeCssScopeName: false,
// 可以自定义css文件名称的函数
customThemeCssFileName: (scopeName) => scopeName
}
}),
// 主题热更新不得已分开插件因为需要vite插件顺序enforce
themePreprocessorHmrPlugin()
]
});
};