Vue3 配置 vite.config.js
随手记录,以备不时之需
import { fileURLToPath, URL } from 'node:url'
import { defineConfig, loadEnv } from 'vite'
import Icons from 'unplugin-icons/vite'
import IconsResolver from 'unplugin-icons/resolver'
import AutoImport from 'unplugin-auto-import/vite'
import Components from 'unplugin-vue-components/vite'
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers'
import { createHtmlPlugin } from 'vite-plugin-html'
import vue from '@vitejs/plugin-vue'
// https://vitejs.dev/config/
export default defineConfig(({ mode }) => {
// 加载 .env 文件
const env = loadEnv(mode, process.cwd());
return {
plugins: [
vue(),
AutoImport({
imports: ['vue', 'vuex', 'vue-router'],
resolvers: [
ElementPlusResolver(),
// 自动导入图标组件
IconsResolver({
prefix: 'Icon'
})
],
}),
Components({
resolvers: [
ElementPlusResolver({
importStyle: "sass"
}),
// Auto register icon components
// 自动注册图标组件
IconsResolver({
prefix: false,
enabledCollections: [],
})
]
}),
Icons({
autoInstall: true,
}),
createHtmlPlugin({
minify: true,
inject: {
// 入口文件 index.html 的模板注入
data: {
title: env.VITE_APP_TITLE,
keywords: env.VITE_APP_KEYWORDS,
description: env.VITE_APP_DESCRIPTION
},
},
})
],
resolve: {
alias: {// 当前目录
'~': fileURLToPath(new URL('./', import.meta.url)),
'@': fileURLToPath(new URL('./src', import.meta.url))
}
},
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "@/themes/${env.VITE_APP_THEME || 'default'}/index.scss" as *;`,
},
},
},
// 开发服务器配置server
server: {
// 开发服务器端口配置。(注意:如果配置的端口已经被使用,Vite 会自动尝试下一个可用的端口,要看项目运行时最终生成的端口地址。)
port: Number(env.VITE_APP_PORT || 9200),
// proxy代理配置
proxy: {
[env.VITE_API_BASE]: {
target: env.VITE_API_PROXY,
changeOrigin: true,
rewrite: (path) => path.replace(env.VITE_API_BASE, ''),
}
}
},
esbuild: {
drop: ['console', 'debugger']
},
// build打包构建配置
build: {
// 打包输出的文件夹名称
outDir: 'dist',
// 静态资源文件保存的文件夹名称
assetsDir: 'static',
// 是否启用css代码拆分
cssCodeSplit: true,
// 是否开启 CSS 压缩
cssMinify: true,
// 打包构建后是否生成 source map 文件。
sourcemap: true,
// 打包构建时压缩混淆使用的混淆器
minify: 'esbuild',
// 自定义底层的 Rollup 打包配置(Rollup文档地址:https://cn.rollupjs.org/configuration-options/)
rollupOptions: {
// 输出配置
output: {
// 输出的文件自定义命名
chunkFileNames: 'static/js/[name].[hash].js',
entryFileNames: 'static/js/[name].[hash].js',
assetFileNamesL: 'static/[ext]/[name].[hash].[text]'
}
}
},
}
})

![[Component] slot "" is not found (for component "miniprogram_npm/tdesign-miniprogram/popup/popup").](https://www.diushu.cn/zb_users/upload/2023/06/202306171686991447658110.png)





