vite+vue2+elementui构建之 vite.config.js

webpack版本太低,构建依赖太多,头大。

各种查阅资料,弄了一份直通构建vite构建elementUi核心文件,

构建基于开源若依vue2+vue3版本改造,感谢开源,感谢若依。

package.json 地址

vite+vue2+elementui构建之 package.json-CSDN博客

vite.config.js

javascript 复制代码
import {defineConfig} from 'vite';
import vue from '@vitejs/plugin-vue2';
import path from 'path'
import autoImport from "unplugin-auto-import/vite"
import createSvgIcon from "./vite/plugins/svg-icon.js";
import vueJsx from '@vitejs/plugin-vue2-jsx';

//https://vitejs.dev/config/
export default defineConfig(({mode, command}) => {
    return {
        base: '/',
        plugins: [
            vue({
                "jsx": true,
            }),
            vueJsx(),
            autoImport({
                imports: [
                    'vue',
                    'vue-router'
                ],
                dts: false
            }),
            createSvgIcon(command === 'build')
        ],
        resolve: {
            // https://cn.vitejs.dev/config/#resolve-alias
            alias: [
                {find: '@', replacement: path.resolve(__dirname, './src')},
                {find: '~', replacement: path.resolve(__dirname, './')},
            ],
            extensions: ['.mjs', '.js', '.ts', '.jsx', '.tsx', '.json', '.vue']
        },
        css: {
            preprocessorOptions: {
                scss: {
                    javascriptEnabled: true,
                }
            },
            postcss: {
                plugins: [
                    {
                        postcssPlugin: 'internal:charset-removal',
                        AtRule: {
                            charset: (atRule) => {
                                if (atRule.name === 'charset') {
                                    atRule.remove();
                                }
                            }
                        }
                    }
                ]
            }
        },
        // vite 相关配置
        server: {
            port: 8090,
            host: true,
            open: true,
            proxy: {
                // https://cn.vitejs.dev/config/#server-proxy
                '/api': {
                    target: 'http://localhost:8080',
                    changeOrigin: true,
                    rewrite: (p) => p.replace(/^\/api/, '')
                }
            }
        },
    }
})

createSvgIcon

javascript 复制代码
import {createSvgIconsPlugin} from 'vite-plugin-svg-icons'
import path from 'path'

export default function createSvgIcon(isBuild) {
    return createSvgIconsPlugin({
        iconDirs: [path.resolve(process.cwd(), 'src/assets/icons/svg')],
        symbolId: 'icon-[dir]-[name]',
        svgoOptions: isBuild
    })
}
相关推荐
李是啥也不会19 分钟前
Vue中Axios实战指南:高效网络请求的艺术
前端·javascript·vue.js
JavaDog程序狗42 分钟前
【实操】uniapp纯前端搞个识别植物花草小程序
前端·vue.js·uni-app
じ☆ve 清风°1 小时前
Vue.js 核心特性解析:响应式原理与组合式API实践
前端·vue.js
一抓掉一大把3 小时前
elementui日历显示红点及根据日程范围判断是否有红点
前端·javascript·elementui
itsOli3 小时前
(25)性能优化和项目上线 | Vue.js 项目实战: 移动端“旅游网站”开发
前端·javascript·vue.js
华洛3 小时前
从0到1打造企业级AI售前机器人——实战指南二:RAG工程落地之数据处理篇🧐
前端·javascript·vue.js
沉迷...5 小时前
el-input限制输入只能是数字 限制input只能输入数字
开发语言·前端·elementui
xx24065 小时前
date-picker组件的shortcuts为什么不能配置在vue的data的return中
前端·javascript·vue.js
二进制独立开发6 小时前
[Trae 04.22+]适用于Vue开发的智能体提示词
vue.js·trae