webpack原理解析

391 阅读2分钟

1.什么是webapck

webpack是javascript的模块化打包工具,通过分析依赖,将模块打包成一个或多个代码块,最后生成对应的 文件

2.什么是loader

loader本质是一个函数,将webpack不能识别的文件,进行预处理。

3.常见的loader

  1. file-loader 将文件放入一个目录,通过相对url 进行引用
  2. url-loader 类似于file-loader,可以设置文件的阀值 加载文件
  3. sass-loader 将类css语言处理成css
  4. css-loader css加载
  5. style-loader 将css加载到js中
  6. ts-loader 将typescript转换成js
  7. eslint-loader 通过eslint检查代码
  8. post-css-loader 扩展css的语法 9.image-loader 图片加载并压缩
  9. babel-laoder es6转换成es5

4.什么是plugin

plugin 插件,在webpack在执行整个流程中,插件可以干预其中任何一个环节,来丰富webpack的功能

5.常见的plugin

  1. DefinePlugin
  2. html-web-plugin 3.uguli

6.webpack的简单流程

1.初始化 读取配置文件和shell参数,生成complie对象,加载plugin 2.编译 找到入口文件,对模块加载loader进行编译 3.打包 打包生成对应的代码块 4.输出文件 找到出口目录,生成对应的文件

  1. sourceMap是什么

sourceMap是代码打包编译后的代码块和源代码的映射的过程

8.热更新HRM是什么,怎么实现的

WDS服务和浏览器之间维护一个webscoket,当客户端文件更新的时候,就通知浏览器有资源更新,附带hash值,客户端会根据hash对比资源的差异,向WDS发起ajax请求更新的资源

  1. babel的原理是什么

babel会将代码转换成AST,在转义AST,再换成成ES5的代码

  1. 优化webpack的构建速度

1.webpack的版本和nodejs的版本

2.多进程实例构建

3.代码压缩

4.提取公共资源

5.缓存提高二次构建速度

11.代码分割