随着项目的复杂度升级,代码规范和管理就必须要同步提升。于是,编程社区中提出了多种模块化规范,服务端选择了 CommonJS 规范,客户端选择 AMD 规范较多,但是,两种模块化规范也都存在一定的问题,都是 JS 编程,有两个不同的模块化规范,在 JS 语言层面还是不够的,终于在 ES6 中,ECMA 委员会推出了语言层面模块系统:ES Modules 规范模块化可以帮助我们更好地解决复杂应用开发过程中的代码组织问题,但是随着模块化思想的引入,我们的前端应用又会产生了一些新的问题,比如:首先,我们所使用的 ES Modules 模块系统本身就存在环境兼容问题。尽管现如今主流浏览器的最新版本都支持这一特性,但是目前还无法保证用户的浏览器使用情况。所以我们还需要解决兼容问题其次,模块化的方式划分出来的模块文件过多,而前端应用又运行在浏览器中,每一个文件都需要单独从服务器请求回来。零散的模块文件必然会导致浏览器的频繁发送网络请求,影响应用的工作效率最后,谈一下在实现 JS 模块化的基础上的发散。随着应用日益复杂,在前端应用开发过程中不仅仅只有 JavaScript 代码需要模块化,HTML 和 CSS 这些资源文件也会面临需要被模块化的问题。而且从宏观角度来看,这些文件也都应该看作前端应用中的一个模块,只不过这些模块的种类和用途跟 JavaScript 不同对于开发过程而言,模块化肯定是必要的,所以我们需要在前面所说的模块化实现的基础之上引入更好的方案或者工具,去解决上面提出的 3 个问题,让我们的应用在开发阶段继续享受模块化带来的优势,又不必担心模块化对生产环境所产生的影响本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler)Vue 脚手架工具 vue-cli 使用 webpack 进行打包,开发时可以启动本地开发服务器,实时预览。因为需要对整个项目文件进行打包,开发服务器启动缓慢而对于开发时文件修改后的热更新 HMR 也存在同样的问题Webpack 的热更新会以当前修改的文件为入口重新 build 打包,所有涉及到的依赖也都会被重新加载一次Vite 则很好地解决了上面的两个问题打包问题vite 只启动一台静态页面的服务器,对文件代码不打包,服务器会根据客户端的请求加载不同的模块处理,实现真正的按需加载热更新问题vite 采用立即编译当前修改文件的办法。同时 vite 还会使用缓存机制( http 缓存 => vite 内置缓存 ),加载更新后的文件内容所以,vite 具有了快速冷启动、按需编译、模块热更新等优良特质综上所述,vite 构建项目与 vue-cli 构建的项目在开发模式下还是有比较大的区别:Vite 在开发模式下不需要打包可以直接运行,使用的是 ES6 的模块化加载规则;Vue-CLI 开发模式下必须对项目打包才可以运行Vite 基于缓存的热更新,Vue-CLI 基于 Webpack 的热更新

前端学习(2906):Vite 解决了 Webpack 哪些问题相关推荐

  1. 前端学习(2952):webpack目录结构

  2. 前端学习(2950):webpack目录结构

  3. 前端学习(2948):webpack创建简单项目

  4. 前端学习(2907):Vite的特点

  5. 前端学习(2158):webpack配置文件的分离

  6. 前端学习(2154):webpack横幅plugin的使用

  7. 前端学习(2148):webpack之图片的处理

  8. 前端学习(2151):webpack之使用vue

  9. 前端学习(2150):webpack之配置babel

最新文章

  1. 舵机弹跳机器人_这个小小的机器人外形呆萌 弹跳能力绝对比你好
  2. 量身定制规则引擎,适应多变业务场景
  3. 20210101 Barbalat引理
  4. 深入浅出之动态内存(new,malloc深度分析)
  5. 宝塔面板的ftp无法使用解决
  6. 循环获取另一个php变量,通过引用将多个变量传递给foreach循环(php)
  7. repo打了 tag之后如何提交tag_技术开发者应该如何构建小团队的微服务方案?
  8. JS Array创建及concat()split()slice()使用
  9. 实时增量学习在云音乐直播推荐系统中的工程实践
  10. iOS 加速计 摇一摇
  11. 用于打开文件的php函数是,PHP文件操作(PHP读写文件)
  12. 树莓派安装Jupyter Notebook实现网页编程
  13. 【Android App】实战项目之仿拼多多的直播带货(附源码和演示 超详细必看)
  14. docker快速安装可道云
  15. VC++2010组件安装失败解决办法
  16. Python open函数用法
  17. unicode字符的转换
  18. 选调生推荐表计算机水平如何填写,2020广东选调生报考推荐表填写模板
  19. Android手动控制软键盘的开启和关闭,判断软键盘是否显示;
  20. 关于Wrap Lighting与皮肤SSS

热门文章

  1. 我从参加#PerfMatters会议中学到的东西
  2. kotlin数据库_如何在Kotlin应用程序中使用Xodus数据库
  3. 代码字体mono_如何构建代码存储库:Multi,Mono或Organic?
  4. 这三种策略可以帮助女性在科技领域蓬勃发展
  5. c# 测试运行时间毫秒级
  6. 【Python】python文件名和文件路径操作
  7. SQL中group by的用法
  8. TCP/IP ---封装与分用
  9. nyoj 21 三个水杯 BFS
  10. java界面化二叉排序树_层次序创建二叉树(图形界面和控制台输入实现)