常见webpack面试真题

1、前端为何要进行打包和构建?

     1.体积更小(Tree-Shaking、压缩、合并),加载更快

     2.编译高级语言和语法(TS,ES6+,模块化,scss)

     3.兼容性和错误检查(Polyfill、postcss、eslint)

     4.统一、高效的开发环境

     5.统一的构建流程和产出标准

     6.集成公司构建规范(提测、上线等)

2、module chunk bundle 的区别 

     1.model - 各个源码文件,webpack中一切皆模块

     2.chunk - 多模块合并成的,如 entry import() spitChunk

     3.bundle - 最终输出的文件

3、loader和plugin的区别

     1.loader - 模块转换器,如 less -> css

     2.plugin - 扩展插件,如 HtmlWebpackPlugin

4、常见的loader和plugin有哪些?

   loader:

  1. file-loader:把文件输出到一个文件夹中,在代码中通过相对URL引用输入的文件。
  2. url-loader:和file类似,但能在文件很小的情况下以base64方式把文件内容注入到代码中。
  3. image-loader:加载并压缩图片文件。
  4. babel-loader:把ES6转换为ES5。
  5. css-loader:加载CSS,支持模块化、压缩、文件导入等特性。
  6. style-loader:把CSS代码注入到JavaScript中,通过DOM操作去加载CSS。
  7. eslint-loader:通过ESlint检查JavaScript代码。

   plugin:

  1. define-plugin:定义环境变量。
  2. commons-chunk-plugin:提取公共代码。
  3. uglifyjs-webpack-plugin:缩小(压缩优化)js文

5、Babel和webpack的区别 

    1.babel - JS新语法编译工具,不关心模块化

    2.webpack - 打包构建工具,是多个loader plugin的集合

6、webpack如何产出一个lib库 

     1.参考webpack.dll.js

     2.output.library

7、说一下Babel-polyfill和babel-runtime的区别 

     1.babel-polyfill会污染全局

     2.babel-runtime不会污染全局

     3.产出第三方lib要用balel-runtime

8、webpack如何实现懒加载?

     1.import()

     2.结合Vue React 异步组件

     3.结合Vue-router React-router异步加载路由

9、为何Proxy不能被Polyfill? 

     1.Class可以用function模拟

     2.Promise可以用callback来模拟

     3.但Proxy的功能用Object.defineProperty无法模拟

10、webpack如何优化构建速度? 

   可用于成产环境

     1.优化babel-loader

     2.IgnorePlugin

     3.noParse

     4.happyPack

     5.ParallelUglifyPlugin

   不可用于成产环境

     1.自动刷新

     2.热更新

     3.DllPugin

11、webpack如何优化产出代码? 

     1.小图片base64编码

     2.bunble 加 hash

     3.懒加载

     4.提取公共代码

     5.使用CDN加速

     6.IgnorePlugin

     7.使用production

     8.Scope Hosting

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
当谈到Webpack面试题时,这是一个常见的问题。以下是一些可能的问题和答案: 1. 什么是WebpackWebpack是一个现代的JavaScript模块打包工具。它可以将多个模块打包成一个或多个捆绑包,以便在浏览器中加载。 2. Webpack的主要特点是什么? Webpack的主要特点包括: - 支持模块化开发,可以将代码拆分为多个模块,提高代码复用性。 - 支持各种资源的打包,如JavaScript、CSS、图片等。 - 支持代码拆分和懒加载,可以按需加载代码。 - 支持开发环境和生产环境的配置,可以根据环境需求进行优化。 - 支持插件系统,可以通过插件扩展Webpack的功能。 3. 如何配置WebpackWebpack的配置文件通常是一个JavaScript文件,其中定义了各种配置选项。常见的配置选项包括入口文件、输出路径、加载器、插件等。 4. 什么是Loader和Plugin? Loader是Webpack的一个核心概念,它用于处理非JavaScript资源。Loader可以将不同类型的文件转换为模块,以便Webpack能够处理它们。 Plugin是Webpack的另一个核心概念,它用于扩展Webpack的功能。Plugin可以在打包过程中执行特定的任务,例如压缩代码、生成HTML文件等。 5. 如何实现代码拆分和懒加载? Webpack提供了两种代码拆分的方式:同步代码拆分和异步代码拆分。 同步代码拆分是指将代码按照指定的入口文件进行拆分,生成多个捆绑包。 异步代码拆分是指在需要时按需加载代码。可以使用动态导入的方式实现异步代码拆分,例如使用import()函数或React.lazy()函数。 以上是一些常见Webpack面试题和答案。当然还有其他更深入的问题,取决于面试官的具体要求。希望这些信息能对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值