mirror of
https://github.com/pure-admin/pure-admin-thin.git
synced 2025-04-25 07:57:18 +08:00
67 lines
2.1 KiB
TypeScript
67 lines
2.1 KiB
TypeScript
import { cdn } from './cdn'
|
|
import { resolve } from 'path'
|
|
import vue from '@vitejs/plugin-vue'
|
|
import { viteBuildInfo } from './info'
|
|
import svgLoader from 'vite-svg-loader'
|
|
import vueJsx from '@vitejs/plugin-vue-jsx'
|
|
// import { viteMockServe } from 'vite-plugin-mock'
|
|
import { configCompressPlugin } from './compress'
|
|
// import ElementPlus from "unplugin-element-plus/vite";
|
|
import { visualizer } from 'rollup-plugin-visualizer'
|
|
import removeConsole from 'vite-plugin-remove-console'
|
|
import themePreprocessorPlugin from '@pureadmin/theme'
|
|
import VueI18nPlugin from '@intlify/unplugin-vue-i18n/vite'
|
|
import DefineOptions from 'unplugin-vue-define-options/vite'
|
|
import { genScssMultipleScopeVars } from '../src/layout/theme'
|
|
|
|
export function getPluginsList(
|
|
command: string,
|
|
VITE_CDN: boolean,
|
|
VITE_COMPRESSION: ViteCompression
|
|
) {
|
|
const prodMock = true
|
|
const lifecycle = process.env.npm_lifecycle_event
|
|
return [
|
|
vue(),
|
|
// https://github.com/intlify/bundle-tools/tree/main/packages/vite-plugin-vue-i18n
|
|
VueI18nPlugin({
|
|
runtimeOnly: true,
|
|
compositionOnly: true,
|
|
include: [resolve('locales/**')]
|
|
}),
|
|
// jsx、tsx语法支持
|
|
vueJsx(),
|
|
VITE_CDN ? cdn : null,
|
|
configCompressPlugin(VITE_COMPRESSION),
|
|
DefineOptions(),
|
|
// 线上环境删除console
|
|
removeConsole({ external: ['src/assets/iconfont/iconfont.js'] }),
|
|
viteBuildInfo(),
|
|
// 自定义主题
|
|
themePreprocessorPlugin({
|
|
scss: {
|
|
multipleScopeVars: genScssMultipleScopeVars(),
|
|
extract: true
|
|
}
|
|
}),
|
|
// svg组件化支持
|
|
svgLoader(),
|
|
// ElementPlus({}),
|
|
// mock支持
|
|
// viteMockServe({
|
|
// mockPath: 'mock',
|
|
// localEnabled: command === 'serve',
|
|
// prodEnabled: command !== 'serve' && prodMock,
|
|
// injectCode: `
|
|
// import { setupProdMockServer } from './mockProdServer';
|
|
// setupProdMockServer();
|
|
// `,
|
|
// logger: false
|
|
// }),
|
|
// 打包分析
|
|
lifecycle === 'report'
|
|
? visualizer({ open: true, brotliSize: true, filename: 'report.html' })
|
|
: null
|
|
]
|
|
}
|