webpack面试

什么是webpack和grunt和gulp有什么不同?

webpack是一个模块打包器,他可以递归的打包项目中的所有模块,最终生成几个打包后的文件。它和其他工具最大的不同在于它支持code-splitting(代码分割)、模块化(AMD,ESM,CommonJS)开发、全局分析(他会分析整个项目下跟你应用有关的模块)。

什么是bundle,chunk,module?

bundle是由webpack打包出来的最终文件。chunk是webpack进行模块的依赖分析时候,代码分割出来的代码块。module是开发中的单个模块。

什么是loader、plugin?

loaders是用来告诉webpack如何转化处理某一类型的文件,并且引入到打包出的文件中。plugin是用来自定义打包过程的方式,一个插件一定含有apply方法,通过这个方法参与到整个打包流程。

如何自动生成webpack配置?

webpack-cli、vue-cli

webpack-dev-server和http服务器如nginx有什么区别?

webpack-dev-servers使用内存来储存webpack开发环境下的打包文件,并且可以使用模块热更新,比传统http服务对开发更加高效。

模块热更新?

它是webpack的一个功能,可以使得代码修改过后不用刷新浏览器就可以更新,是高级版的自动刷新浏览器。

什么是长缓存?

浏览器在用户访问页面时候,为了加快访问速度,都会对用户访问的静态资源进行储存,但每一次代码升级和更新,都需要浏览区去下载新的代码,最方便和简单的更新方式就是引入新的文件名称。在webpack中可以在output给文件指定chunkhash,并且分离经常更新的代码和框架代码,通过namedModulesPlugin再次使打包文件名不变。

什么是tree-shaking? css可以tree-shaking吗?

指打包中去除那些引入了但在代码中没用到的死代码。在wepack中js treeshaking通过UglifyJsPlugin来进行,css中通过purify-CSS来进行.

你可能感兴趣的:(webpack面试)