IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 快速创建vite+vue3+ts项目及首次缓慢问题 -> 正文阅读

[JavaScript知识库]快速创建vite+vue3+ts项目及首次缓慢问题

vite推出之后,在国内火的一塌糊涂,在前端圈立马就卷了起来。我这撸着JQ项目的还没开始用过。公司用vite+vue3+ts的项目拿来跑了一下,第一次启动慢的我怀疑人生,后来才知道已经有插件解决了这个问题。

先用vite快速创建项目吧,现在快速创建项目的命令很多:

npm init vite-app <project name>

npm init @vitejs/app

两个命令都试了一下,都是可以创建的,创建出来的项目不太一样,第一个vite的版本是"vite": “^1.0.0-rc.13”,第二个是"vite": “^2.8.0”。vite官网也提供了命令,也有社区模板,提供了各种工具和不同框架的模板。这边使用官网推荐的命令:

npm init vite@latest

yarn create vite

使用npm会出现:

npm WARN deprecated create-vite-app@1.21.0: create-vite-app has been deprecated. run `npm init @vitejs/app` or `yarn create @vitejs/app` instead.

所以是建议使用@vitejs/app创建项目,命令不同, 结果都一样:

执行npm init @vitejs/app,会让你输入项目名

然后会让你选择vue、react等模板

vue里面有vue和vue-ts模板,选择vue-ts

进入项目,初始化,就可以启动了。项目什么东西都没有,启动非常快,首页访问也非常快,为了验证vite首次启动慢的问题,引入element-plus,然后做了按需加载,结果命令行启动:
在这里插入图片描述
访问的时候:
在这里插入图片描述
好家伙,用了14秒,页面还会报错然后显示,还不止这几个:
在这里插入图片描述
network有非常多的请求:
在这里插入图片描述
这只是新建的项目,只有一个element-plus,如果是开发项目,第一次路由跳转的时候,跳转不了,会直接刷新。

所以vite的快和慢到底是相对于什么?

vite的快:命令行启动快,官网的说法是,vite通过在一开始将应用中的模块区分为 依赖 和 源码 两类,改进了开发服务器启动时间,以 原生 ESM 方式提供源码,让浏览器接管了打包程序的部分工作,只需要在浏览器请求源码时进行转换并按需提供源码。而webpack需要在内存中编译、打包、压缩。

vite的慢:需要一次性请求太多的资源,而且这些资源有些并不是浏览器可以直接运行的,vite还需要动态的解析,然后一些需要打包再返回给浏览器。

vite也提供了解决的方法,依赖预构建,使用自定义行为的配置项optimizeDeps,

里面也提到了缓慢的原因:

https://vitejs.cn/guide/dep-pre-bundling.html

可以直接使用插件vite-plugin-optimize-persist,npm找这个包,有使用方法:

npm i -D vite-plugin-optimize-persist vite-plugin-package-config

// vite.config.tsimport OptimizationPersist from 'vite-plugin-optimize-persist'import PkgConfig from 'vite-plugin-package-config'
export default {
  plugins: [
    PkgConfig(),
    OptimizationPersist()
  ]}

当你访问过一次之后,会在package.json生成:
在这里插入图片描述

当然,项目第一次访问依然是很慢的,只是之后别人拉取的代码有了这个预构建的配置,第一次就很快了。

可能也是自己没有做过vite官网描述的那种大项目吧,(包含数千个模块的大型项目,需要几分钟才能启动开发服务器,即使使用 HMR,文件修改后的效果也需要几秒钟才能在浏览器中反映出来)体会不到vite的精髓。

欢迎关注订阅号 coding个人笔记

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-04 15:27:11  更:2022-03-04 15:28:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 9:07:01-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码