/* * @Author: luoxi * @Date: 2022-01-25 09:51:12 * @LastEditors: luoxi * @LastEditTime: 2022-01-25 12:40:52 * @FilePath: \vue-admin-box\vite.config.ts * @Description: */ import { ConfigEnv, UserConfigExport } from 'vite' import vue from '@vitejs/plugin-vue' import { resolve } from 'path' import { svgBuilder } from './src/plugins/svgBuilder'; const pathResolve = (dir: string): any => { return resolve(__dirname, ".", dir) } const alias: Record = { '@': pathResolve("src") } /** * @description-en vite document address * @description-cn vite官网 * https://vitejs.cn/config/ */ export default ({ command }: ConfigEnv): UserConfigExport => { return { base: './', resolve: { alias }, server: { port: 3001, host: '0.0.0.0', open: false, proxy: { // 代理配置 '/ruoyi': 'http://localhost:8080/' }, }, build: { lib: { formats:['es'], entry: resolve(__dirname, 'src/index.ts'), name: 'app_common_frame', fileName: (format) => `index.${format}.js` }, rollupOptions: { //preserveEntrySignatures:'exports-only', external: ['vue','element-plus','axios','vuex','js-cookie'], output: { format:'esm', manualChunks: { 'echarts': ['echarts'], }, globals: { vue: 'Vue' } } } }, plugins: [ vue(), svgBuilder('./src/assets/icons/svg/','svg-icon') ], css: { preprocessorOptions: { scss: { javascriptEnabled: true, additionalData: '@import "./src/assets/style/common.scss";', } }, postcss: { plugins: [ { postcssPlugin: 'internal:charset-removal', AtRule: { charset: (atRule) => { if (atRule.name === 'charset') { atRule.remove(); } } } } ], }, } }; }