Files
fastmovieai/fastmovie-vue/vite.config.ts
T

91 lines
2.3 KiB
TypeScript
Raw Normal View History

import path from 'path'
import { ConfigEnv, defineConfig, loadEnv } from 'vite'
import vue from '@vitejs/plugin-vue'
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 compression from 'vite-plugin-compression';
import Inspect from 'vite-plugin-inspect'
const pathSrc = path.resolve(__dirname, './src')
export default defineConfig((ConfigEnv: ConfigEnv) => {
const env = loadEnv(ConfigEnv.mode, process.cwd())
return {
base: '/fastmovie/',
resolve: {
alias: {
'@': pathSrc,
},
},
build: {
assetsDir: 'assets',
rollupOptions: {
output: {
manualChunks(id) {
if (id.includes('node_modules')) {
return 'vendor';
}
}
}
},
},
plugins: [
// bundleAnalyzer({ port: 8888, }),
compression({
// 指定要压缩的文件类型,默认为 .js 和 .css
// ext: '.js',
// 开启Gzip压缩
algorithm: 'gzip',
// 超过(n)k才打包
threshold: 50 * 1024,
// 是否删除原始文件,默认为 false
deleteOriginFile: false
}),
vue(),
AutoImport({
imports: ['vue'],
resolvers: [
ElementPlusResolver(),
IconsResolver({
prefix: 'Icon',
}),
],
dts: path.resolve(__dirname, 'auto-imports.d.ts'),
eslintrc: {
enabled: true
},
}),
Components({
extensions: ['vue', 'md'],
include: [/\.vue$/, /\.vue\?vue/, /\.md$/],
resolvers: [
IconsResolver({
enabledCollections: ['ep'],
}),
ElementPlusResolver(),
],
dts: path.resolve(__dirname, 'components.d.ts'),
}),
Icons({
autoInstall: true,
}),
Inspect()
],
server: {
open: true,
port: 36310,
allowedHosts: true,
// 接口代理(解决跨域)
proxy: {
"/local": {
target: env.VITE_REQUEST_BASE_URL,
changeOrigin: true,
rewrite: (path) => path.replace(/^\/local/, ""),
}
},
},
}
})