Webpack相关面试题
1.如何利用webpack来优化前端性能?(提高性能和体验)
用webpack优化前端性能是指优化webpack的输出结果,让打包的最终结果在浏览器运行快速高效。
压缩代码。删除多余的代码、注释、简化代码的写法等等方式。可以利用webpack的UglifyJsPlugin和ParallelUglifyPlugin来压缩JS文件, 利用cssnano(css-loader?minimize)来压缩css
利用CDN加速。在构建过程中,将引用的静态资源路径修改为CDN上对应的路径。可以利用webpack对于output参数和各loader的publicPath参数来修改资源路径
删除死代码(Tree Shaking)。将代码中永远不会走到的片段删除掉。可以通过在启动webpack时追加参数–optimize-minimize来实现
提取公共代码
2.webpack与grunt、gulp的不同?
三者都是前端构建工具,grunt和gulp在早期比较流行,现在webpack相对来说比较主流,不过一些轻量化的任务还是会用gulp来处理,比如单独打包CSS文件等。
grunt和gulp是基于任务和流(Task、Stream)的。类似jQuery,找到一个(或一类)文件,对其做一系列链式操作,更新流上的数据, 整条链式操作构成了一个任务,多个任务就构成了整个web的构建流程。
webpack是基于入口的。webpack会自动地递归解析入口所需要加载的所有资源文件,然后用不同的Loader来处理不同的文件,用Plugin来扩展webpack功能。
3.webpack的构建流程是什么?从读取配置到输出文件这个过程尽量说全
Webpack搭建React开发环境步骤
首先要有node环境,进入Node.js的官网,选择对应系统下载安装包。安装node后集成了npm管理器
设置默认
npm
使用淘宝镜像
npm config set registry https://registry.npm.taobao.org
安装
cnpm
包,安装成功后npm
命令更换为cnpm
命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
## 安装成功之后,直接像使用npm一样使用cnpm即可,例如:安装某个包就变成了
cnpm i packageName
设置环境变量
创建项目文件夹,以 myapp
文件为例,该文件即为项目根目录。打开命令提示符,执行:
cd myapp
依次完成以下操作:
第一步 安装模块
创建package.json文件
# 手动配置
npm init
# 自动配置
npm init -y
安装react模块
# 安装react
cnpm install react --save
# 安装react-dom
cnpm install react-dom --save
安装webpack工具
# 安装webpack和webpack-cli
cnpm install webpack webpack-cli --save-dev
安装babel相关
# 安装 babel和react相关加载器
cnpm i babel-loader @babel/core @babel/preset-env @babel/preset-react -D
安装css加载器
cnpm i css-loader style-loader -D
安装HTML插件
cnpm i html-webpack-plugin -D
PS:【依赖安装到 开发环境与生产环境的区别】
开发环境,即项目的编码阶段需要的依赖,上线后不需要引用,例如:webpack构建工具、babel加载器等,使用
--save
或-S
命令安装;生产环境,项目上线后开始正式提供对外