1.什么是webapck
webpack是javascript的模块化打包工具,通过分析依赖,将模块打包成一个或多个代码块,最后生成对应的 文件
2.什么是loader
loader本质是一个函数,将webpack不能识别的文件,进行预处理。
3.常见的loader
- file-loader 将文件放入一个目录,通过相对url 进行引用
- url-loader 类似于file-loader,可以设置文件的阀值 加载文件
- sass-loader 将类css语言处理成css
- css-loader css加载
- style-loader 将css加载到js中
- ts-loader 将typescript转换成js
- eslint-loader 通过eslint检查代码
- post-css-loader 扩展css的语法 9.image-loader 图片加载并压缩
- babel-laoder es6转换成es5
4.什么是plugin
plugin 插件,在webpack在执行整个流程中,插件可以干预其中任何一个环节,来丰富webpack的功能
5.常见的plugin
- DefinePlugin
- html-web-plugin 3.uguli
6.webpack的简单流程
1.初始化 读取配置文件和shell参数,生成complie对象,加载plugin 2.编译 找到入口文件,对模块加载loader进行编译 3.打包 打包生成对应的代码块 4.输出文件 找到出口目录,生成对应的文件
- sourceMap是什么
sourceMap是代码打包编译后的代码块和源代码的映射的过程
8.热更新HRM是什么,怎么实现的
WDS服务和浏览器之间维护一个webscoket,当客户端文件更新的时候,就通知浏览器有资源更新,附带hash值,客户端会根据hash对比资源的差异,向WDS发起ajax请求更新的资源
- babel的原理是什么
babel会将代码转换成AST,在转义AST,再换成成ES5的代码
- 优化webpack的构建速度
1.webpack的版本和nodejs的版本
2.多进程实例构建
3.代码压缩
4.提取公共资源
5.缓存提高二次构建速度
11.代码分割