美文网首页
学习webpack【第三章-核心概念2】

学习webpack【第三章-核心概念2】

作者: zzyo96 | 来源:发表于2019-10-21 17:42 被阅读0次

一、Hot Module Replacement 热模块替换

二、使用babel处理ES6

——————————————

写在前面

当运行npm run start的时候,webpack对项目进行打包,但是没有生成dist目录, 其实是因为生成了 只是在内存中运行


image.png

一、Hot Module Replacement 热模块替换

作用:

当页面发生变化的时候,不要刷新页面,而是将那些发生变化的元素变了,而那些没发生变化的元素保持不变

使用:

添加hot 就是启动这不刷新页面的形式
添加hotOnly 是即使更换失败了,也不要刷新我的页面

image.png image.png

二、使用babel、polyfill处理ES6

安装
npm install --save-dev babel-loader @babel/core

@babel/core 是babel核心库

npm install @babel/preset-env --save-dev

preset-env 包含了所有es6转es5的语法转换规则

在一些低版本浏览器对于某些语法还是需要进一步转换 ,这时需要用到polyfill进行补充以支持一些低版本浏览器的特性
npm install --save polyfill

使用时在要js顶部引入polyfill


image.png

默认情况下polyfill会对所有的es6转es5语法都进行翻译,但实际上只需要转换用到的即可, 因此需要配置userBuiltIns属性

配置的时候

image.png

默认的时候会把所有polifill都注入进来,这样会造成浪费 所以需要添加配置属性
targets, 如果是谷歌大于67版本的就不用转换
useBuiltIns 按需引入(只有用到es6的才注入, 没有用到的es6, 就不会注入)

如果是在开发一个库的时候要用runtime方式引用,他会通过闭包的方式解析es6语法,不会造成污染全局变量,而preset-env 会造成污染全局变量。

下面是runtime方式的写法,不需要写presets 只写plugins即可
在index.js中也不需要进入pollfill
需要安装core2
npm install --save @babel/runtime-corejs2

然后进行如下配置

image.png

下面是写的是业务代码时只需要配置presets代码即可

image.png

然后在index.js中引入polyfill即可

image.png

对babel配置项的内容非常多时候会提取一个.babelrc文件,专门用于配置babel
,然后删除webpack.config.js 中的options中的内容。


image.png

删除options前


image.png

webpack.config.js 删除options后

image.png

相关文章

网友评论

      本文标题:学习webpack【第三章-核心概念2】

      本文链接:https://www.haomeiwen.com/subject/edukuctx.html