作用
是一个前端代码打包工具。
打包流程
主要是: 初始化参数,编译,找到入口entry,遍历模块以及它依赖的模块,预处理loader,模块编译,然后根据依赖关系输出到指定的路径和目录下。
模块
loader: 预处理器,对各种文件格式进行处理,转换成webpack能识别的js代码。常见的预处理器有less-loader、postcss-loader、ts-loader。
plugin: 插件,在webpack打包过程中的特定时间对资源进行一些处理,增强webpack的能力。例如打包优化,代码压缩等。常用的插件有clean-webpack-plugin删除上一次打的包。
webpack打包优化
压缩代码、按需加载资源、懒加载、缓存、删除多余的代码(tree-shaking)等
提升webpack构建速度
减少要打包的文件。
loader和plugin的区别
loader下载后直接使用,在编译阶段进行。
plugin下载后需要引用再使用,在整个周期都有效。