|
/*
* @Author: Devin
* @Date: 2023-01-11 16:29:53
* @LastEditors: Devin
* @LastEditTime: 2023-02-22 10:44:35
* @Description: 配置文件
*/
import { defineConfig } from 'vite';
import eslintPlugin from 'vite-plugin-eslint';
import { resolve } from 'path';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
import viteCompression from 'vite-plugin-compression';
import vue from '@vitejs/plugin-vue';
// https://vitejs.dev/config/
export default defineConfig({
plugins: [
vue(),
eslintPlugin({
include: [
'packages/**/*.js',
'packages/**/*.vue',
'packages/**/*.jsx',
'packages/**/*.ts'
],
// exclue: ['./node_modules/**'],
cache: false
}),
createSvgIconsPlugin({
iconDirs: [resolve(process.cwd(), 'packages/assets/icons')],
svgoOptions: true,
// Specify symbolId format
symbolId: 'icon-[dir]-[name]'
}),
AutoImport({
resolvers: [ElementPlusResolver()]
}),
Components({
resolvers: [ElementPlusResolver({ importStyle: 'sass' })]
}),
viteCompression({
verbose: true,
disable: false,
threshold: 102400,
algorithm: 'gzip',
ext: '.gz'
})
],
css: {
preprocessorOptions: {
scss: {
additionalData: `@use "@/assets/css/variable.scss";`
}
}
},
resolve: {
// alias: {
// '@': path.resolve(__dirname, 'src')
// }
alias: [
{
find: '@',
replacement: resolve('packages')
}
]
},
server: {
open: true,
// headers: {
// 'Access-Control-Allow-Origin': '*'
// },
origin: 'http://localhost:8888',
host: '0.0.0.0',
port: 8888,
proxy: {}
},
build: {
outDir: 'lib',
lib: {
entry: './packages/index.ts',
name: 'common-ui'
// fileName: (format) => `common-ui.${format}.js`, // 输出文件名
// formats: ['es', 'umd']
},
rollupOptions: {
external: ['vue'],
output: {
globals: {
vue: 'Vue'
}
}
}
}
});
|