- 为什么使用webpack?
在日常的开发中经常在index.html引入多个css,js文件,会导致页面加载慢,所以有必要将他们合并为一个文件,所以使用webpack打包工具,从而实现自动会打包,减少人力打包的时间和精力。
- webpack的常用配置项
- devtool项的值一般有哪些
内联和外部的区别:1、外部生成了文件,内联没有 2、内联构建速度更快
- source-map的原理(重点)
因为目前我们开发时的源码跟通过webpack构建混淆压缩后的生产环境部署代码不一样,sourceMap就是一个以.map结尾的文件类型,主要作用是记录和源码有关的位置信息。
sourceMap是一种提供编译文件和原始源文件之间映射的技术,这使得开发人员在调试过程中可以看到原始代码,而不是编译后的代码。
通过webpack等工具,我们可以使用sourceMap,它跟构建后的文件同在一个目录下
在webpack的development模式下,会自动开启source-map,是为了方便调试,定位错误,但是production模式,会自动关闭。
- module,chunk和bundle的区别联系
- module(模块):模块,分割 的代码单元,webpack中的模块可以是任何内容文件,不仅限于JS,还有CSS、图片。
- chunk(代码块):webpack内部构建模块的块,一个chunk中包含多个模块,这些模块是从入口模块通过依赖分析得来的。
- bundle(包):chunk构建好模块后会生成chunk的资源清单,清单中的每一项目都是bundle,bundle就是最终生成的文件。
- webpack的工作流程
- webpack热更新原理
- plugin和loader的区别
- 如何优化webpack 的打包速度,如何减少webpack的打包体积
- splitechunk配置项细节
- hash,chunkhash,contenthash的区别
- hash:最终资源清单所有内容联合生成的hash值。
- chunkhash:chunk生成的资源清单内容联合生成的hash值。
- 每个chunk打包后,会产生的哈希,叫做chunkhash
- chunkname:chunk的名称,如果没有配置,那就是使用main
- contenthash:根据内容生成hash值,文件内容相同hash值就相同
- 这个哈希只跟内容有关,内容不变,哈希值不变
- tree shaking原理
- babel的原理和工作流
loader的原理和代码实现
plugin的原理和代码实现
webpack中提取公共模块的方法
mainfest文件的作用是什么
less-loader的底层原理
webpack5的新特性
webpack做多页面打包的思路
错误信息上报如何用webpack处理,监听webpack生命周期钩子函数,进行webpack打包过程中错误信息的收集
webpack中做代理
webpack长缓存优化
动态导入、按需加载原理
webpack文件监听的原理(轮询),开启方式