资讯专栏INFORMATION COLUMN

webpack4 系列教程(二): 编译 ES6

graf / 1174人阅读

摘要:今天介绍怎么编译的各种函数和语法。对于相关的匹配规则,除了匹配结尾的文件,还应该去除文件夹下的第三库的文件发布前已经被处理好了。它需要在我们项目的入口文件中被引入,或者在中配置。个人网站原文链接系列教程二编译

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

>>> 本节课源码

>>> 所有课程源码

1. 了解babel

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

babel-loader: 负责 es6 语法转化

babel-preset-env: 包含 es6、7 等版本的语法转化规则

babel-polyfill: es6 内置方法和函数转化垫片

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"
  }
}

>>> package.json 配置地址

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"
        }
      }
    ]
  }
};

>>> .babelrc 地址

>>> 配置文件地址

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. 相关资料

polyfill 引入:https://www.babeljs.cn/docs/u...

babel-preset-env 配置:https://www.babeljs.cn/docs/p...

欢迎技术交流,引用请注明出处。
个人网站:Yuan Xin
原文链接:webpack4 系列教程(二): 编译 ES6

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96469.html

相关文章

  • webpack-demos:全网最贴心webpack系列教程和配套代码

    摘要:全网最贴心系列教程和配套代码欢迎关注个人技术博客。所以我花费了个多月整理了这份教程,一共分成节,每节都有讲解,并且准备了配套代码。奈何深感水平不够,只有一腔热情,所以直接开放了教程和源码。 webpack-demos:全网最贴心 webpack 系列教程和配套代码 欢迎关注个人技术博客:godbmw.com。每周 1 篇原创技术分享!开源教程(webpack、设计模式)、面试刷题(偏前...

    LMou 评论0 收藏0
  • webpack4 系列教程: 前言

    摘要:课程地址全部课程地址立即进入课程源码目录截至按照知识点,目录分成了个文件夹之后还会持续更新。个人网站原文链接系列教程前言 本文档已经过时,最近内容请看:https://godbmw.com/passage/76。一共16节课程和代码。谢谢支持。 1. 什么是webpack? 前端目前最主流的javascript打包工具,在它的帮助下,开发者可以轻松地实现加密代码、多平台兼容。而最重要的...

    DevWiki 评论0 收藏0
  • webpack4 系列教程(一): 打包JS

    摘要:本身就是为了打包所设计,作为第一节,介绍怎么打包。检验规范支持支持。创建文件夹,其中和分别用和规范编写。收尾打包后的文件会按照我们的配置放在目录下,这时,需要创建一个文件,引用打包好的文件。个人网站原文链接系列教程一打包 webpack 本身就是为了打包js所设计,作为第一节,介绍怎么打包js。 1. 检验webpack规范支持 webpack支持es6, CommonJS, AMD。...

    chanthuang 评论0 收藏0
  • webpack4系列教程(十):总结

    摘要:传送门系列教程一初识系列教程二创建项目,打包第一个文件系列教程三自动生成项目中的文件系列教程四处理项目中的资源文件一系列教程五处理项目中的资源文件二系列教程六使用分割代码系列教程七使用系列教程八使用审查代码系列教程九开发环境和生产环境 在前端开发日益复杂的今天,我们需要一个工具来帮助我们管理项目资源,打包、编译、预处理、后处理等等。webpack的出现无疑是前端开发者的福音,我的博文只...

    hqman 评论0 收藏0
  • webpack4系列教程(七):使用 babel-loader

    摘要:然而,浏览器对这些高级语法的支持性并不是非常好。是一个编译器,能够让我们放心的使用新一代语法。在中使用安装修改,加入新的遇到文件就先用处理,表示排除文件夹中的文件。 1. 什么是Babel 如今 ES6 语法在开发中已经非常普及,甚至也有许多开发人员用上了 ES7 或 ES8 语法。然而,浏览器对这些高级语法的支持性并不是非常好。因此为了让我们的新语法能在浏览器中都能顺利运行,Babe...

    mingde 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<