webpack面试相关

148 阅读1分钟

什么是webpack

分析项目结构,找到js模块和其他浏览器不能直接运行的扩展语言,打包成合适的格式给浏览器使用 常

见的loader

source-map-loader:额外的map文件,方便调试。image-loader:加载压缩图片 css-loader:模块化,压缩,文件导入,

常见的plugin

mine-css-plugin:分离css文件 happypack:多线程加速编译

loader和plugin的区别

两者都是为了扩展webpack的功能。loader它只专注于转化文件(transform)这一个领域,完成压缩,打包,语言翻译; 而plugin不仅只局限在打包,资源的加载上,还可以打包优化和压缩,重新定义环境变量等

解决问题

预处理,文件转化,热更新

热更新原理

一个是client包建立websocket通信,一个dev-derver接收消息和更新操作,setuo监听文件变化,将编译的文件打包,最后浏览器进行更新

提高构建速度

CommonsChunkPlugin 提取公共代码 删除多余代码 多线程

核心

enter,入口 如./src/index.js output:出口,如./dist loader:模块转换器,按需转换成新内容比如less转css plugin:扩展插件比如html模版

webpack打包原理

读取文件依赖模块分析,对模块解析处理,编译,最后生成js文件