博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webpack4 系列教程(二): 编译 ES6
阅读量:6940 次
发布时间:2019-06-27

本文共 1619 字,大约阅读时间需要 5 分钟。

今天介绍
webpack怎么编译
ES6的各种函数和语法。敲黑板:
这是webpack4版本哦, 有一些不同于webpack3的地方。

1. 了解babel

说起编译es6,就必须提一下babel和相关的技术生态:

  1. babel-loader: 负责 es6 语法转化
  2. babel-preset-env: 包含 es6、7 等版本的语法转化规则
  3. babel-polyfill: es6 内置方法和函数转化垫片
  4. babel-plugin-transform-runtime: 避免 polyfill 污染全局变量

需要注意的是, babel-loaderbabel-polyfill。前者负责语法转化,比如:箭头函数;后者负责内置方法和函数,比如:new Set()

2. 安装相关库

这次,我们的package.json文件配置如下:

{  "devDependencies": {    "babel-core": "^6.26.3",    "babel-loader": "^7.1.5",    "babel-plugin-transform-runtime": "^6.23.0",    "babel-preset-env": "^1.7.0",    "webpack": "^4.15.1"  },  "dependencies": {    "babel-polyfill": "^6.26.0",    "babel-runtime": "^6.26.0"  }}

3. webpack中使用babel

babel的相关配置,推荐单独写在
.babelrc文件中。下面,我给出这次的相关配置:
{  "presets": [    [      "env",      {        "targets": {          "browsers": ["last 2 versions"]        }      }    ]  ],  "plugins": ["transform-runtime"]}

webpack配置文件中,关于babel的调用需要写在module模块中。对于相关的匹配规则,除了匹配js结尾的文件,还应该去除node_module/文件夹下的第三库的文件(发布前已经被处理好了)。

module.exports = {  entry: {    app: "./app.js"  },  output: {    filename: "bundle.js"  },  module: {    rules: [      {        test: /\.js$/,        exclude: /(node_modules)/,        use: {          loader: "babel-loader"        }      }    ]  }};

4. 最后:babel-polyfill

我们发现整个过程中并没有使用babel-polyfill它需要在我们项目的入口文件中被引入,或者在webpack.config.js中配置。这里我们采用第一种方法编写app.js:

import "babel-polyfill";let func = () => {};const NUM = 45;let arr = [1, 2, 4];let arrB = arr.map(item => item * 2);console.log(arrB.includes(8));console.log("new Set(arrB) is ", new Set(arrB));

命令行中进行打包,然后编写html文件引用打包后的文件即可在不支持es6规范的老浏览器中看到效果了。

5. 相关资料


欢迎技术交流,引用请注明出处。
个人网站:
原文链接:

转载地址:http://hksnl.baihongyu.com/

你可能感兴趣的文章
JVM(四)垃圾收集器_分代收集器
查看>>
每日例会
查看>>
根据图片路径生成二进制流,下载图片
查看>>
解决Linux下启动Tomcat遇到Neither the JAVA_HOME nor the JRE_HOME environment variable is defined...
查看>>
C#在Json反序列化中处理键的特殊字符
查看>>
Eclipse for Java EE软件操作集锦(一)
查看>>
文本分类之六分类结果评估
查看>>
信息熵
查看>>
正则表达式的基本用法
查看>>
.NET Core 2.0 开源Office组件 NPOI
查看>>
STL学习笔记-- stack
查看>>
Git
查看>>
pip list 警告消除方法
查看>>
Shell 同步时间脚本
查看>>
基于原生 XMLHTTPPRequest 封装 get 方法
查看>>
Egret入门(二)--windows下环境搭建
查看>>
hash和history模式
查看>>
nginx.spec
查看>>
xss level11
查看>>
僵尸进程和孤儿进程 [转]
查看>>