webpack系列-大厂webpack面试真题

1,330 阅读2分钟

前端常见面试流程

image-20220518055731023.png

通过此篇文章你能学到什么?

  • 知识点 + 真题验证
  • 通过一个题,学会一类题
  • 不是题海战术,而是技巧和思路

真题一:前端为何要进行打包和构建?

从些比较关键的点去讲,再根据自己情况,带些不同的细节,面试官比较喜欢。

代码层面:

image-20220518053547607.png

研发流程层面:

image-20220518053654645.png

如果只看得到代码层面,那只是合格的程序员。

而想要往高处走,就要考虑公司层面的东西。

比如这里的,第1、2条,不光能提升个人、团队,甚至公司层面的效率6成以上了。

真题二:module\chunk\bundle区别

  • module:各个源码文件,webpack中一切皆模块。
  • chunk:在内存中还没有产出的代码块。
  • bundle:每个chunk打包后,都可以产生个bundle文件。

真题三:loader和plugin区别

  • loader模块转换器,如less->css,举2-3个例子
  • plugin扩展插件,如HtmlWebpackPlugin,举2-3个例子

对于有三年及以上经验的读者,可能会被问及:“loader为什么是从右往左的执行顺序?”

逸轩先在这里留个坑,在写完webpack主要内容后,可能会为此问题专门写一篇文章,也可能会写成webpack常见问题合集。

真题四:常见的loader和plugin

把逸轩之前讲过的复习下,能讲出来就好。

全面完整版:

www.webpackjs.com/loaders/

www.webpackjs.com/plugins/

挑几个讲就好

真题五:babel和webpack的区别

Babel.js是新语法编译工具,不关心模块化

webpack是打包构建工具,是多个loader plugin的集合。你配置什么loader plugin,它就有什么能力。

真题六:如何产出一个lib(第三方工具)

参考webpack.dill.js

image-20220518060639669.png 当我们自己做些第三方模块或工具的时候,可以用到。

3年有架构经验、或5年经验的同学,可能会被问到 "你有写过loader/plugin么?"“如何编写loader/plugin?”

此处逸轩留个坑,日后会出一篇专门文章带大家手写loader/plugin~点赞关注,不迷路~

真题七:bable-polyfill和able-runtime的区别

image-20220830080309832.png

真题八:webpack如何实现懒加载

image-20220830080530616.png

真题九:为何Proxy不能被Polyfill?

因为没有任何东西,可以模拟它

image-20220830080752984.png

真题十:webpack如何优化构建速度?

可用于生产环境

image-20220830081031060.png

不可用于生产环境

  • 自动刷新
  • 热更新
  • DllPlugin

讲解重点是场景,不是所有好东西都用。

扩展:webpack如何优化产出代码?

占个坑,这个问题会写大篇幅文章来讲,写完再来补链接。

属于:webpack-> webpack性能优化-> webpack优化产出代码,里面。

这些手段不光要记住,还要理解。

比如:产出效果,不用导致什么副作用等。