webpack与babel的总结

1.基本配置
https://www.jianshu.com/p/d6eb241b8988
2.高级配置
a配置多入口
https://www.jianshu.com/p/3ae0fc9ac272
b如何抽离压缩css文件
https://www.jianshu.com/p/b8080c7170e6
c抽离公共代码
https://www.jianshu.com/p/ac6f239658ce
d如何实现异步加载js(懒加载)处理vue以及处理jsx
https://www.jianshu.com/p/b131744c8498
3.优化打包效率(构建速度)
https://www.jianshu.com/p/381265ccb293
4.优化产出代码
https://www.jianshu.com/p/fc42b2d6306e
webpack的性能优化可以结合3.4两点说明
5.构建流程概述
https://blog.csdn.net/webwhite/article/details/86531811
6.babel(和webpack相辅相成)
https://www.jianshu.com/p/17aa4511a912
7.常见面试题
https://www.jianshu.com/p/f0cb90b24b59

常见面试题

前端代码为何要进行构建和打包?

Module chunk bundle 分别是什么意思,有何区别

loader和plugin的区别

webpack如何实现懒加载

webpack常见的性能优化

Babel-runtime和babel-polyfill的区别

webpack基本配置

Vue-cli create-react-app

常用上述脚手架,而不会自己配置webpack

有哪些基本配置?

​ 1.拆分配置和merge:一般情况下,webpack的设置需要定一个一个公共的common的配置,然后呢需要定义一个开发环境的配置,即dev,然后需要定义一个线上的配置,即prod;然后通过webpack-merge将一些公共的配置合入webpack.dev.js和webpack.prod.js文件中

​ 2.启动服务:安装webpack-dev-server,以及devServer里的一些配置项和代理的配置

​ 3.处理es6–通过babel-loader

​ 4.处理样式

​ 5.处理图片

​ 开发环境下使用file-loader,生产环境下在限制以下的使用url-loader(可以将图片转换为base64格式)–由于不转为base64,在图片加载时需要花费时间请求,耗时,在转换为base64之后可以直接显示出来,限制以上的使用file-loader

​ contentHash

6.模块化

webpack的高级配置

基本配置只能做demo,不能做线上项目

1.多入口

​ [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-O3exSv5G-1641525057453)(/Users/yujinrong/Library/Application Support/typora-user-images/image-20220104134856733.png)]

多入口需要配置的entry,output中的filename,针对每一个入口,都需要建一个HtmlWebpackPlugin的插件

2.webpack如何抽离压缩css文件

​ 针对线上环境

https://blog.csdn.net/longtengg1/article/details/118768069

3.抽离公共代码
公共的函数,公共的模块等开发环境未进行,在生产环境需进行此操作
splitChunks
用的chunk(代码块)的地方:entry里可以表示每段chunk;new HtmlWebpackPlugin里chunks的引用,splitChunks里的两个chunk的名字

4.webpack如何实现异步加载js(懒加载)
import(’’)返回一个promise通过.then可以接受到资源,不仅vue支持,vue,react也支持,异步加载的时候也会产生chunk
不异步加载时直接import xxx from ‘’

5.处理vue以及处理jsx
https://www.jianshu.com/p/b131744c8498

优化
1.module chunk bundle的区别
module–各个源码文件,webpack中一切皆模块(只要能引用的都是模块,js,css,图片)
chunk–多模块合成的,如entry import() splitChunk等生成chunk
bundle – 最终的输出文件(chunk生成完之后,一般一个chunk生成一个bundle,由文件系统生成一个bundle)
https://webpack.docschina.org/
由webpack的官方图例,左边的是module,中间的是chunk,最终生成的是bundle

2.webpack性能优化
优化打包构建速度 – 开发环境
优化产生代码 – 产品性能–生产环境,如公共代码的拆分和抽离,hash值的添加

3.优化打包构建速度 – 开发环境(8个点)
https://www.jianshu.com/p/381265ccb293
其中的DLLPlugin–针对比较大的第三方库和插件没有必要每次打包一遍

babel

babel其实就是一个空壳,使用时需要结合plugins一起使用
preset预设,常用的plugins的集合,可以作为 Babel 插件的组合。将常用的plugins打一个包之后,重新取一个名字
对于预设里面不能满足的条件,在plugins中写
babel语法,符合es5语法规范,不处理模块化webpack,因此babel需要和webpack一起配合使用

前端为何要进行打包构建–面试题链接中

你可能感兴趣的:(笔记,webpack,前端,javascript)