2021 最新 webpack 面试题

【webpack】Webpack 最常用的 20 道面试题总结 webpack最常用20道面试题,码住可随时查阅背诵与学习! 阅读详情
  • plugins(插件)作用更大,可以打包优化,资源管理和注入环境变量

  • loader: loader是文件加载器,能够加载资源文件,直接对文件进行操作,最后进行打包, 处理一个文件可以使用多个loader,loader的执行顺序是和本身的顺序是相反的,即最后一个loader最先执行,第一个loader最后执行。 第一个执行的loader接收源文件内容作为参数,其他loader接收前一个执行的loader的返回值作为参数。最后执行的loader会返回此模块的JavaScript源码

  • plugin: webpack启动后,在读取配置的过程中会执行new MyPlugin(options)初始化一个MyPlugin获取其实例 · 在初始化compiler对象后,就会通过compiler.plugin(事件名称,回调函数)监听到webpack广播出来的事件 · 并且可以通过compiler对象去操作webpack 虽然俩者都可以对webpack进行一定的拓展,但是loader更像是一个转换器,直接操作文件进行转换 。plugin是一个扩展器,它丰富了wepack本身,针对于loader结束后,webpack打包的整个过程,它并不直接操作文件,而是基于事件机制工作,会监听webpack打包过程中的某些节点,

什么是bundle,chunk,module

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

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

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

什么是模块热更新

webpack的一个功能,可以使代码修改后不用刷新浏览器就自动更新,高级版的自动刷新浏览器,devServer中通过hot属性可以控制模块的热替换

webpack的环境拆分

环境拆分:主要有两种方式

  • 第一种方式是将开发环境配置和生成环境配置分离,并配置一个公共配置,在对应的环境下调用 merge方法将公共配置的内容merge到当前环境的配置中,实现环境分离;

  • 第二种方式是开发环境和生成环境配置写在同一个文件中,通过在script脚本中设置NODE_ENV区分当前环境,在配置文件中通过 process.env.NODE_ENV 获取当前环境,调用对应的配置。需要注意window在使用NODE_ENV时可能会出现问题,可以安装cross-env 并配置在script脚本中解决该问题。

webpack-dev-server的作用

webpack-dev-server是webpack官方提供的一个小型Express服务器。使用它可以为webpack打包生成的资源文件提供web服务。

webpack-dev-server 主要提供两个功能:

1.为静态文件提供web服务

2.自动刷新和热替换(HMR)

自动刷新指当修改代码时webpack会进行自动编译,更新网页内容

热替换指运行时更新各种模块,即局部刷新

dev-server是怎么跑起来的


webpack-dev-server支持两种模式来自动刷新页面

  • iframe模式(页面放在iframe中,当发送改变时重载) 无需额外配置,只要以这种格式url访问即可。http://localhost:8080/webpack-dev-server/index.html

  • inline模式(将webpack-dev-server的客户端入口添加到bundle中) inline模式下url不用发生变化,但启动inline模式分两种情况

// 以命令行启动webpack-dev-server有两种方式

// 方式1 在命令行中添加–inline命令

// 方式2 在webpack-config.js添加devServer:{inline: true}

// 以node.js API启动有两种方式

// 方式1 添加webpack-dev-server/client?http://localhost:8080/到webpack配置的entry入口点

config.entry.app.unshift(“webpack-dev-server/client?http://localhost:8080/”);

// 将添加到html文件中

使用过webpack里面哪些plugin和loader

loader

  • babel-loader: 将ES6+转移成ES5-

  • css-loader,style-loader:解析css文件,能够解释@import url()等

  • file-loader:直接输出文件,把构建后的文件路径返回,可以处理很多类型的文件

  • url-loader:打包图片

什么是长缓存?在webpack中如何做到长缓存优化

  • 浏览器在用户访问页面的时候,为了加快加载速度会对用户访问的静态资源进行存储,但是每一次代码升级或更新都需要浏览器下载新的代码,最简单方便的方式就是引入新的文件名称。

  • webpack中可以在output中指定chunkhash,并且分离经常更新的代码和框架代码。通过NameModulesPlugin或HashedModuleIdsPlugin使再次打包文件名不变

什么是Tree-shaking?CSS可以Tree-shaking

Tree-shaking是指在打包中取出那些引入了但在代码中没有被用到的死代码。

webpack中通过uglifysPlugin来Tree-shaking JS。CSS需要使用purify-CSS

如何提高webpack的构建速度

  1. 通过externals配置来提取常用库

  2. 利用DllPlugin和DllReferencePlugin预编译资源模块 通过DllPlugin来对那些我们引用但是绝对不会修改的npm包来进行预编译,再通过DllReferencePlugin将预编译的模块加载进来。

  3. 使用Happypack 实现多线程加速编译

「2021」高频前端面试题汇总之性能优化篇 系列文章: 【1】「2021」前端面试题之HTML篇 【2】「2021」前端面试题之CSS篇 【3】「2021」前端面试题之浏览器原理篇 【4】「2021」前端面试题之计算机网络篇 【5】「2021」前端面试题之Vue篇 【6】「2021」前端面试题之React篇 【7】「2021」前端面试题之JavaScript篇(上) 【8】「2021」前端面试题之JavaScript篇(下) 目录系列文章:一、CDN1. CDN的概念2. CDN的作用3. CDN的原理4. CDN的使用场景二、懒加载1. 懒加载的概 阅读详情

相关推荐

【亲测可用!】阿里达摩院开源实时数字人对话VideoChat本地部署教程(8G显存可跑)

本文主要记录在部署阿里达摩院开源实时数字人对话VideoChat时遇到的问题,希望对各位技术开发或爱好者有所帮助!

波点兔的博客 3897

webpack面试题(2024 最新版)

发现源码发生变化时,自动重新构建出新的输出文件。

qq_16546829的博客 8228

Linux下离线安装Google Chrome

目录背景一、下载并安装Google Chrome二、下载并安装依赖包1.libvulkan.so.1()(64bit)2.读入数据总结 背景 项目中服务器被要求不能连接外网,不能直接联网安装,所以需要下载Google Chrome安装包和依赖包,然后离线安装。 linux下步骤都一样,不管ubuntu还是centos只是需要下载对应系统的文件包即可。 本机系统:CentOS 7 一、下载并安装Google Chrome 官方下载地址http://www.google.cn/chrome/browser/d

ancientapesman的博客 1万+

webpack相关面试题(深度考察)

面试过程中,考察前端的打包工具webpack,全部了解后,面试就会很顺利。

qq_38144981的博客 5678

在 NVIDIA Orin (JetPack 6.0) 上配置 PyTorch 2.4 + Torchvision 0.19 的完整避坑指南

本文提供在NVIDIA Jetson Orin设备上,基于JetPack 6.0系统配置PyTorch 2.4与Torchvision 0.19环境的完整指南。通过使用Miniconda环境隔离、安装特定版本PyTorch夜间构建版、编译匹配的Torchvision源码等步骤,解决版本不匹配、CUDA支持等常见问题,确保AI开发环境稳定可用。

weixin_29179311的博客 364

国宇测试盒GH7009 SPI读操作全解析:从接线到代码实现的避坑指南

本文详细解析了国宇GH7009测试盒进行SPI读操作的完整流程与避坑要点。重点阐述了硬件连接中IO2时序控制引脚的关键作用,提供了从接线方案、电源处理到上位机代码实现的实战指南,并针对常见的数据不稳定、特定寄存器读取失败等问题给出了具体解决方案。

dapp9builder的博客 224

Webpack面试题汇总

webpack面试题汇总

山雀的博客 5066

PCL SAC-IA 初始配准算法【2025最新版】

采样一致性初始配准算法,简称SAC_IA。博客长期更新,本文最新更新时间为:2025年1月1日。新增参数设置建议

点云侠的博客 37万+

webpack面试题

Loader 可以将除 JavaScript 之外的任何类型的文件(如 CSS、Markdown、JSON 等)转换为可导入到你的应用程序中的有效模块,并且可以将这些模块视为普通模块一样处理。file-loader 可以处理任意类型的文件,而 url-loader 可以将小的图片转换成 base64 编码,从而减少文件请求次数。] 可以使用 eslint-loader 去检查源代码中的语法错误,并使用 eslint-plugin-react 检查React应用程序中的常见问题。

m0_59550122的博客 3002

pt100和max31865测室温跳变比较大,会从23.04跳到23.47,23.75反复跳变超过了0.5的误差范围,在VDD和GND之间加上0.1和10的滤波电容也不行,如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 2087

Linux内核配置选项详解及编译过程

在内核编译完成后,可以通过重启系统并选择新编译的内核来使用它。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以在该菜单下选择需要编译进内核的设备驱动,也可以选择将设备驱动编译为模块。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。可以选择需要的网络协议和功能,并根据需要启用或禁用相应的选项。可以选择需要的调试选项,并根据需要启用或禁用相应的功能。可以选择需要的文件系统类型,并根据需要启用或禁用相应的选项。

TechGlide的博客 747

2021年最新前端面试题(js,vue,webpack,css,react)总结

一.javascript 1.javascript 有哪几种数据类型 undefined,null,string,boolean,number,symbol(ES6),BigInt。。。object里面包含的 function、Array、Date 2.target和currentTarget区别 event.target 返回触发事件的元素 event.currentTarget 返回绑定事件的元素 $(document).ready()方法和window.onload有什么区别 (1)、w

weixin_42845571的博客 3276

有道龙虾LobsterAI vs. OpenClaw:对比与安装部署攻略

LobsterAI是"中国版OpenClaw",更注重易用性和中文场景适配;OpenClaw是技术极客的玩具,需要大量命令行操作。

lpfasd123的博客 2397

2021webpack面试题及答案

关于webpack的面试题        随着现代前端开发的复杂度和规模越来越庞大,已经不能抛开工程化来独立开发了,如react的jsx代码必须编译后才能在浏览器中使用;又如sass和less的代码浏览器也是不支持的。 而如果摒弃了这些开发框架,那么开发的效率将大幅下降。在众多前端工程化工具中,webpack脱颖而出成为了当今最流行的前端构建工具。 然而大多数的使用者都只是单纯的会使用,而并不知道其深层的原理。希望通过以下的面试题总结可以

weixin_52139094的博客 5417

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

webpack 面试题整理

文章目录webpack 面试题整理谈谈你对Webpack的理解Webpack的打包过程/打包原理/构建流程?Webpack中loader的作用/ loader是什么?常见的loader有哪些?Plugin有什么作用?/Plugin是什么常见的Plugin有哪些Webpack 插件的执行顺序(加载机制)?Webpack中Loader和Plugin的区别Webpack 做过哪些优化手段?有哪些优化手段?tree-shaking 删除没有使用的代码 优化前端性能/提高构建速度使用tree-shaking需要注意什

好好学习天天向上 3万+

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

webpack的面试题总结

本文转自于前端面试总结@知乎专栏:https://zhuanlan.zhihu.com/p/44438844 随着现代前端开发的复杂度和规模越来越庞大,已经不能抛开工程化来独立开发了,如react的jsx代码必须编译后才能在浏览器中使用;又如sass和less的代码浏览器也是不支持的。 而如果摒弃了这些开发框架,那么开发的效率将大幅下降。在众多前端工程化工具中,webpack脱颖而出成为了当今最...

AC总有一天的博客 2万+

web前端高级webpack - webpack常见面试题及手写loader和plugin

webpack常见面试题 有哪些常见的Loader?你用过哪些Loader? css-loader:加载 CSS,支持模块化、压缩、文件导入等特性 style-loader:把 CSS 代码注入到 JavaScript 中,通过 DOM 操作去加载 CSS postcss-loader:扩展 CSS 语法,使用下一代 CSS,可以配合 autoprefixer 插件自动补齐 CSS3 前缀 -** babel-loader**:把 ES6 转换成 ES5 file-loader:把文件输出到一个文件

lixiaosenlin的专栏 6266

最新最全的前端面试题集锦之 Webpack 篇

该内容主要整理关于 Webpack 的相关面试题,其他内容面试题请移步至 2021 最新最全的前端面试题集锦 查看。 目录1. 谈谈你对webpack的看法?2. webpack的基本功能和工作原理?3. webpack构建过程?4. webpack打包原理?5. webpack与gulp、grunt有什么区别? 1. 谈谈你对webpack的看法? webpack 是一个模块打包工具,可以使用它管理项目中的模块依赖,并编译输出模块所需的静态文件。它可以很好地管理、打包开发中所用到的HTML、CSS.

XH_jing的博客 3880

2021最新前端面试题

以下是2021年最新的公司面试题 try catch 的实现原理。 token怎么处理?刷新token的原理,为啥需要刷新token。 组件通信方法有哪些?事件总线和vuex的区别。 vue数据双向绑定原理,vue3又是怎么处理的,proxy的缺点。 生命周期函数。 路由导航钩子。 vue的优缺点。 对云开发和微前端有没有了解过? 数组去重,怎么把set数据结构转成数组? axios请求怎么使用? axios与ajax区别。 axios请求在vuex什么地方使用? 路由跳转有哪几种方式? axios的二次

前端阿杰的博客 1116

2024年前端最新Webpack5 搭建 Vue3 + TS 项目(1),2024年最新蚂蚁金服前端面试题及答案

三套“算法宝典”开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】算法刷题LeetCode中文版(为例)人与人存在很大的不同,我们都拥有各自的目标,在一线城市漂泊的我偶尔也会羡慕在老家踏踏实实开开心心养老的人,但是我深刻知道自己想要的是一年比一年有进步。最后,我想说的是,无论你现在什么年龄,位于什么城市,拥有什么背景或学历,跟你比较的人永远都是你自己,所以明年的你看看与今年的你是否有差距,不想做咸鱼的人,只能用尽全力去跳跃。祝愿,明年的你会更好!三套“算法宝典”

2301_82243710的博客 813

2024年前端最新关于webpack打包文件,自学Flutter

技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。

2401_84446610的博客 960

【面试题】你需要知道的webpack高频面试题_webpack专场——大厂高频面试题】(1)

webpack是一个模块打包工具,可以递归地打包项目中的所有模块,最终生成几个打包后的文件。区别:webpack支持代码分割,模块化(AMD,CommonJ,ES2015),全局分析entry 入口,告诉webpack要使用哪个模块作为构建项目的起点,默认为./src/index.jsoutput 出口,告诉webpack在哪里输出它打包好的代码以及如何命名,默认为./distloader是用来告诉webpack如何转换某一类型的文件,并且引入到打包出的文件中。

2301_82244607的博客 475
上一篇: 必会的 24 道 Shell 脚本面试题
下一篇: 2024年不可错过的17种JS优化技巧(一)
普通网友
博客等级 码龄5年 3419粉丝 477原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值