9 Star 136 Fork 522

时间淡忘一切/art-design-pro

forked from SuperManTT/art-design-pro 
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
vite.config.ts 4.43 KB
一键复制 编辑 原始数据 按行查看 历史
import { defineConfig, loadEnv } from 'vite'
import path from 'path'
import { fileURLToPath } from 'url'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import tailwindcss from '@tailwindcss/vite'
import viteCompression from 'vite-plugin-compression'
import vueDevTools from 'vite-plugin-vue-devtools'
import { codeInspectorPlugin } from 'code-inspector-plugin'
import createVitePlugins from './vite/plugins'
const __dirname = path.dirname(fileURLToPath(import.meta.url))
export default ({ mode, command }) => {
const root = process.cwd()
const env = loadEnv(mode, root)
const { VITE_VERSION, VITE_PORT, VITE_API_URL } = env
console.log(`🚀 API_URL = ${VITE_API_URL}`)
console.log(`🚀 VERSION = ${VITE_VERSION}`)
return defineConfig({
define: {
__APP_VERSION__: JSON.stringify(VITE_VERSION)
},
server: {
port: parseInt(VITE_PORT),
proxy: {
'/dev-api': {
target: VITE_API_URL,
changeOrigin: true,
rewrite: (p) => p.replace(/^\/dev-api/, '')
},
'/prod-api': {
target: VITE_API_URL,
changeOrigin: true,
rewrite: (p) => p.replace(/^\/prod-api/, '')
},
'/img': {
target: 'http://localhost:9097',
changeOrigin: true
}
},
host: true
},
// 路径别名
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
'@views': resolvePath('src/views'),
'@imgs': resolvePath('src/assets/images'),
'@icons': resolvePath('src/assets/icons'),
'@utils': resolvePath('src/utils'),
'@stores': resolvePath('src/store'),
'@plugins': resolvePath('src/plugins'),
'@styles': resolvePath('src/assets/styles')
},
extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
},
build: {
target: 'es2015',
outDir: 'dist',
chunkSizeWarningLimit: 2000,
minify: 'terser',
terserOptions: {
compress: {
// 生产环境去除 console
drop_console: true,
// 生产环境去除 debugger
drop_debugger: true
}
},
dynamicImportVarsOptions: {
warnOnError: true,
exclude: [],
include: ['src/views/**/*.vue']
}
},
plugins: [
// Tailwind CSS v4 插件
tailwindcss(),
// 自动导入 components 目录下的组件
...createVitePlugins(env, command === 'build'),
// 自动导入 components 下面的组件,无需 import 引入
Components({
deep: true,
extensions: ['vue'],
dirs: ['src/components'],
resolvers: [ElementPlusResolver({ importStyle: false })],
dts: 'src/types/components.d.ts'
}),
// 自动导入组件 Api
AutoImport({
imports: ['vue', 'vue-router', '@vueuse/core', 'pinia'],
resolvers: [ElementPlusResolver()],
dts: 'src/types/auto-imports.d.ts',
// ESLint 配置
eslintrc: {
// 首次运行时设置为 true 生成配置文件,之后改为 false
enabled: true,
// ESLint 配置文件路径
filepath: './.auto-import.json',
// 允许全局使用自动导入的 API
globalsPropValue: true
}
}),
// 压缩
viteCompression({
verbose: false, // 是否在控制台输出压缩结果
disable: false, // 是否禁用
algorithm: 'gzip', // 压缩算法
ext: '.gz', // 压缩后的文件名后缀
threshold: 10240, // 只有大小大于该值的资源会被处理 10240B = 10KB
deleteOriginFile: false // 压缩后是否删除原文件
}),
vueDevTools(),
codeInspectorPlugin({
bundler: 'vite',
editor: 'webstorm'
})
// 打包分析
// visualizer({
// open: true,
// gzipSize: true,
// brotliSize: true,
// filename: 'dist/stats.html' // 分析图生成的文件名及路径
// }),
],
css: {
preprocessorOptions: {
// sass variable and mixin
scss: {
additionalData: `
@use "@styles/core/el-light.scss" as *;
@use "@styles/core/mixin.scss" as *;
`
}
}
}
})
}
function resolvePath(paths: string) {
return path.resolve(__dirname, paths)
}
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
TypeScript
1
https://gitee.com/djxchi/art-design-pro.git
git@gitee.com:djxchi/art-design-pro.git
djxchi
art-design-pro
art-design-pro
tailwind-new-icon

搜索帮助