vue3 基础知识 ( webpack 基础知识)05

你好

文章目录

  • 一、组件
  • 二、如何支持SFC
  • [三、webpack 打包工具](#三、webpack 打包工具)
  • [四、webpack 依赖图](#四、webpack 依赖图)
  • [五、webpack 代码分包](#五、webpack 代码分包)

一、组件

使用组件中我们可以获得非常多的特性:

  1. 代码的高亮;
  2. ES6、CommonJS的模块化能力;
  3. 组件作用域的CSS;
  4. 可以使用预处理器来构建更加丰富的组件,比如TypeScript、Babel、Less、Sass等

二、如何支持SFC

事实上随着前端的快速发展,目前前端的开发越来越复杂了,比如我们需要通过 模块化开发 ,比如使用 高级的特性 来加快我么开发效率或者安全性,比如通过 es6 、ts 开发脚本逻辑,通过 cass、less 登方式来编写css样式;比如开发过程中,我们还希望 实时的监听文件的变化并反映到浏览器上 ,提升开发效率 ; 比如开发完成吼 需要将代码压缩、合并登其他优化 。 浏览器只能识别js 代码,但是不能解析这个模板,如果我们想要使用这一的SFC的.vue文件,比较常见的是两种方式:

  1. 使用Vue CLI来创建项目,项目会默认帮助我们配置好所有的配置选项,可以在其中直接使用.vue文件;
  2. 自己使用webpack或rollup或vite这类打包工具,对其进行打包处理;

很多开发者来说,并不需要思考这种问题,因为不管是vue react angular 都是借助脚手架cli帮我们打包的,事实上cli实际上是基于webpack 搭建的

三、webpack 打包工具

webpack 是一个静态的 模块化 打包 工具,为现代的 javaScript 应用程序

  1. 打包bundler : webpack可以将帮助我们进行打包,所以它是一个打包工具
  2. 静态的static : 这样表述的原因是我们最终可以将代码打包成最终的静态资源(部署到静态服务器)
  3. 模块化module : webpack默认支持各种模块化开发,ES Module、CommonJS、AMD等
  4. 现代的modern : 我们前端说过,正是因为现代前端开发面临各种各样的问题,才催生了webpack的出现和发展

比如说vue 需要哪些打包呢?

  1. js 打包:es6转化为es5 ,ts转化为 js
  2. css处理: css模块的加载,处理;less sass 等预处理器的处理
  3. 资源文件img,font : 加载
  4. html:打包

package.jsom

随着前端由多页面到单页面,由零散的文件到模块化开发,在每个项目中,都会用到打包工具,比如在使用 webpack,但是他实际上他就是一个 。在开发里,我们肯定不止一个包,包怎么进行管理呢? package.json 文件其实就是 包管理工具 ,对项目或者模块包的描述,里面包含许多元信息。比如项目名称,项目版本,项目执行入口文件,项目贡献者等等。npm install 命令会根据这个文件下载所有依赖模块。

webpack 依赖于node环境,他是js编写的

webpack.config.js

可以在这个文件里配置一些webpack 的相关信息

四、webpack 依赖图

  1. 事实上webpack 在处理应用程序时,会根据命令或者配置文件找到入口文件
  2. 从入口开始,会生成一个 依赖关系图 , 这个依赖图包括应用程序中所需的所有模块(js,css,img,font...)
  3. 然后遍历图结构,打包一个个模块(根据文件的不同,使用不同的loader来解析)
  4. 不会产生依赖冲突,如果已经加载过的会有个标记不会再次加载

五、webpack 代码分包

相关推荐
o***Z4481 小时前
前端性能优化案例
前端
张拭心1 小时前
前端没有实际的必要了?结合今年工作内容,谈谈我的看法
前端·ai编程
姜太小白1 小时前
【前端】CSS媒体查询响应式设计详解:@media (max-width: 600px) {……}
前端·css·媒体
HIT_Weston2 小时前
39、【Ubuntu】【远程开发】拉出内网 Web 服务:构建静态网页(二)
linux·前端·ubuntu
百***06012 小时前
SpringMVC 请求参数接收
前端·javascript·算法
天外天-亮2 小时前
Vue + excel下载 + 水印
前端·vue.js·excel
起个名字逛街玩2 小时前
前端正在走向“工程系统化”:从页面开发到复杂产品架构的深度进化
前端·架构
用户47949283569152 小时前
React 渲染两次:是 Bug 还是 Feature?聊聊严格模式的“良苦用心”
前端·react.js·前端框架
b***74883 小时前
前端GraphQL案例
前端·后端·graphql
云飞云共享云桌面3 小时前
无需配置传统电脑——智能装备工厂10个SolidWorks共享一台工作站
运维·服务器·前端·网络·算法·电脑