vite+element-plus项目基础搭建

2023-11-01

1.引言

    其实本来不应该写这种CSDN比较多的博文的,主要是因为比较多,然后想解决问题的时候有很多各种各样的文章,然后这些文章有各自的解决思路,甚至拿过来又不能解决问题,本着分享和方便以后使用的目的,记录这次使用过程。

2.为什么是Vite?

    其实我最开始用的是vue-cli,但是使用的时候发现这个每次运行的时候都需要打包,导致运行的比较慢,得等个10几秒。加上看到Element-plus官网在配置教程里面甚至都没有放vue-cli的配置教程。在使用vue-cli引入的时候我又希望不是全部引入,因为很多组件是没必要的,也许正是因为这个Element-plus比较大,所以打包的时间平时使用的时候大更多。基于上述原因,我查了一下vite和vue-cli的区别:
(1)vite打包速度快,能够利用浏览器对JavaScript 模块的原生支持,而vue-cli在打包上更像是webpack的一个超集,本身基于webpack来打包,又在webpack的基础上增加了很多脚手架,由于webpack将项目的各种依赖利用js串联起来,工作量相对较大,时间慢也是正常的;
(2)由于Vite打包之后还是依赖于浏览器,所以对于低版本的浏览器支持的不是很好。

3.为什么是Element-plus?

    因为之前没有使用过这个UI库,自己一个个组件的写太慢了。而且Element-plus热度也比较高。Element-plus本质是Element-UI对Vue3的支持更新,用来配合Vue3开发非常合适,相比之下,有很多UI框架还没能转到Vue3,不得不感叹前端发展实在是太快了,各种UI组件库,各种生态,这种来自于社区的依赖。

4.项目搭建

    好了不多说了,直接开始吧:

npm init vite@latest <app name> -- --template vue-ts

安装依赖、测试运行什么的就不说了,配置vite.config.ts(含修改端口方式):

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
export default defineConfig({
  plugins: [
    vue()
  ],
  server: {
    port: 8080,
  },
});

    安装element-plus依赖:npm i element-plus (使用-D主要是我们一般只是用生成的dist文件,用于生产环境);安装 sass和sass-loader,方便之后使用element中提供的颜色主题和自己写sass一些样式。
    修改tsconfig.json,关闭打包时候的ts校验(否则打包的时候会因为ts校验不通过而导致打包失败):"skipLibCheck": true,为了方便编译器提示加上:"types": ["element-plus/global"],
在这里插入图片描述
    入口文件:

import { createApp } from 'vue';
import App from './App.vue';
import router from './router/index';
import 'element-plus/dist/index.css';
const app = createApp(App);
app.use(router);
app.mount('#app');

    按需引入,安装官网提到的unplugin-auto-importunplugin-vue-components依赖(-D就行),调整vite.config.ts文件:

import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { ElementPlusResolver } from 'unplugin-vue-components/resolvers';
export default defineConfig({
  plugins: [
    vue(),
    AutoImport({
      resolvers: [ElementPlusResolver()],
    }),
    Components({
      resolvers: [ElementPlusResolver()],
    }),
  ],
  server: {
    port: 8080,
  },
});

实践测试,如果使用这种方法,那么每次会由这两个自动导入的依赖为我们引入我们自己写的components组件
在这里插入图片描述
如果全部引入那么文件大小1.4MB左右,如果按需引入只有400KB,所以还是按需引入比较香。

5.参考文献

    本次项目搭建看了很多文章,对我帮助比较大的是这三篇文章:
(1)搭建vite项目并配置路由和element-plus
(2)Element官网配置教程
(3)Vite和Vue CLI的优劣

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vite+element-plus项目基础搭建 的相关文章

随机推荐

  • 爬虫与反爬、加密算法

    网络爬虫 网络爬虫 是一个自动提取网页的程序 它为搜索引擎从万维网上下载网页 是搜索引擎的重要组成 但是当网络爬虫被滥用后 互联网上就出现太多同质的东西 原创得不到保护 于是 很多网站开始反网络爬虫 想方设法保护自己的内容 他们根据ip访问
  • 编译内核的make命令

    https blog csdn net robothj article details 89840721 编译内核的make命令 问题描述 在编译友善之臂NanoPi NEO Air的Linux 4 14内核时 当我按照wiki说明 使用如
  • SSM商城项目实战:物流管理

    SSM商城项目实战 物流管理 在SSM商城项目中 物流管理是一个重要的功能模块 通过物流管理 可以实现订单的配送 运输和签收等操作 本文将介绍如何在SSM商城项目中实现物流管理功能的思路和步骤代码 实现SSM商城项目中物流管理的思路总结如下
  • ORACLE 11G R2 DGBROKER 之TAF

    ORACLE 11G R2 DGBROKER 之TAF 经过前面的实验我们已经搞定了服务器端的SWITCH OVER 和FAST FAILE OVER 那现在我们来搞定客户端或者是应用服务器端的自动切换到合适的数据库服务器上 当主数据库无法
  • 向量化执行引擎框架 Gluten 正式开源!

    近日举办的 Databricks Data AI Summit 2022 上 来自 Intel 的陈韦廷和来自 Kyligence 的张智超共同分享了 Intel 和 Kyligence 两家企业自 2021 年合作共建的全新开源项目 Gl
  • keil中出现了莫名其妙的error: #18: expected a “)“错误

    今天在使用keil进行编程时 突然出现了error 18 expected a 的错误 查看出现错误的地方时却发现并没有出现错误 最终发现 原因 使用sprintf时 表示的双引号未使用转义字符 解决方法 在要表示的双引号前添加转义字符
  • 安装Anaconda/Python3.9/Tensorflow

    安装Anaconda Python3 9 Tensorflow 安装Anaconda 官网安装 开梯子 Download即可 打开下载好的安装包 按照提示 一路 Next 选择安装路径 这里官方并没有推荐自动配置环境变量 自动或手动配置均可
  • 【python量化】将极限学习机(Extreme Learning Machine)用于股票价格预测

    写在前面 下面的这篇文章首先将介绍极限学习机 Extreme Learning Machine ELM 的基本原理 然后通过python实现ELM 并将其用于股票价格预测当中 原代码在文末进行获取 1 极限学习机的基本原理 极限学习机 Ex
  • scrapy爬取链接

    近期因为工作需要 开始学习和写爬虫 学习到了很多内容 就整理了一下发上来 需求 这里爬虫的目的是检测网站的漏洞 因此希望做成类似于burpSuit的历史记录一样的 初步需求是简单地爬取网站的链接 去重 尝试绕过反爬虫 更进一步的是希望像bu
  • React既在constructor内部写state又在外部写了state的情况

    React既在constructor内部写state又在外部写了state的情况下 state到底是里面生效还是外面生效 查了一下 没有说这俩同时的帖子 所以自己验证的时候第一个想法是考虑代码的顺序 还有constructor的特殊性 看了
  • 今天在做微信分享功能的时候,遇到项目部署后出现 config:invalid url domain 弹窗提示的解决办法

    产生此错误的原因是微信公众号后台配置的微信安全网址跟当前页面的域名不一致导致的 要解决这种情况就需要在公众号的后台设置js接口安全域名 打开微信公众平台 把MP verify sfpa0ES1106ZRXnp txt 这个文件放到你的服务器
  • Codeforces 808G(KMP+DP)

    转移的时候要注意对于S 0 i 后缀的最长匹配 如果最长匹配为整个T串 那么就可以开始转移 转移时新出现的T可以从上一个完整的T的公共前缀的next转移加1过来 这就相当于用上一个T中的后缀作为当前T的前缀 不断求NEXT求出一个最大的转移
  • 蛇形矩阵/算法

    常见的蛇形矩阵 1 回性蛇形矩阵 2 上三角s型蛇形矩阵 3 完整s型蛇形矩阵 回型蛇形矩阵 输入数据 x是作为横坐标起点 y纵坐标起点 思路 四个方向右下左上 顺时针填进数字 每一次都可以用while循环一行一列依次填写 每次判断下要填的
  • Android ANR问题定位 实战

    在Android开发过程中 ANR问题可能是非常常见的一个问题 下面我分享一个亲身经历的ANR问题以及解决方法 1 发生ANR 必然会有log日志 在系统的data anr目录下 我们将所有的anr log日志pull出来 由于权限的原因
  • Lua实现定时器

    Lua实现定时器 An highlighted block local index 1 local delays local elasped 0 local function SetTimeout delay fn table insert
  • Dynamics CRM2011自定义框架解决方案

    Dynamics CRM2011自定义框架解决方案 解决方案文件下载 一 目的 许多客户习惯之前系统自定义开发的页面 操作习惯或界面风格 但使用了Dynamics CRM2011后只能使用产品自带的风格 为解决此类问题提供了此解决方案 在C
  • 阿里巴巴为什么不用 ZooKeeper 做服务发现?

    转载自 https developer aliyun com article 601745 历史的迷思 站在未来的路口 回望历史的迷途 常常会很有意思 因为我们会不经意地兴起疯狂的念头 例如如果当年某事提前发生了 而另外一件事又没有发生会怎
  • 面向对象的程序设计思想

    面向对象是当今主流的一种程序设计理念和设计规范 它取代了早期的 结构化 过程设计开发技术 主张一切皆为对象 程序以人的思维模式去解决问题 面向对像的程序是由类组成的 每个类包含对用户公开的特定功能部分和隐藏的实现部分 面向对象 Object
  • 人工智能练习题 + 知识点汇总(期末复习版)

    目录 第一章 人工智能绪论 第二章 知识与谓词 第三章 谓词与自然演绎推理 第四章 语义网表示法和框架表示法 第五章 归结原理 第六章 置换和合一 第七章 定理证明和问题求解 第八章 状态空间法和问题归约法 第九章 启发式搜索 第十章 与或
  • vite+element-plus项目基础搭建

    vite element plus项目基础搭建 1 引言 2 为什么是Vite 3 为什么是Element plus 4 项目搭建 5 参考文献 1 引言 其实本来不应该写这种CSDN比较多的博文的 主要是因为比较多 然后想解决问题的时候有