一、Babel:  (官网:https://www.babeljs.cn/docs/)

1、Babel 是一个 JavaScript 编译器;

2、Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。

3、 Babel的作用:

  ①、语法转换

  ②、通过 Polyfill 方式在目标环境中添加缺失的特性 (通过 @babel/polyfill 模块)

  ③、源码转换 (codemods)

二、Babel配置思路:

  在webpack中,默认只能处理 一部分ES6的新语法,一些更高级的ES6或者ES7 语法,webpack是处理不了的;这时候,就需要借助于第三方的 loader ,来帮助webpack 处理这些高级的语法;当第三方loader 把高级语法转为低级语法之后,会把结果交给 webpack 去打包到bundle.js中;

 通过Babel ,可以帮我们将高级的语法转换为 低级的语法:

1、在webpack 中,可以运行如下两套命令,安装两套包,去安装babel 相关的loader功能:

①、第一套包:

  

cnpm i babel-core babel-loader babel-plugin-transform-runtime -D

②、第二套包:

cnpm i babel-preset-env babel-preset-stage-0 -D

2、打开 webpack 的配置文件,在module节点下的rules 数组中,添加一个新的匹配规则:

①、

{ test :/\.js$/, use :'babel-loader',  exclude:/node_modules/ }

②、注意:在配置babel 的loader 规则的时候,必须把node_modules目录,通过 exclude选项排除掉:原因有俩:

I、如果不排除 node_modules ,则babel 会把 node_modules 中所有的第三方JS文件,都打包编译,这样,会非常消耗CPU,同时,打包速度非常慢;

II、哪怕,最终,babel 把所有的node_modules 中的JS 转换完毕了,但是,项目也无法正常运行。

3、在项目的 根目录中,新建一个叫做:.babelrc的Babel 配置文件,这个配置文件,属于JSON 格式,所以,在写.babelrc 配置的时候,必须符合JSON语法规范:不能写注释,字符串必须用双引号;

①、在.babelrc 写下的配置:大家可以把 preset 翻译成 【语法】 的意思:

{
"presets": [" env","stage-0"],
"plugins": ["transform-runtime"]
}

4、目前,我们安装的  babel-preset-env 是比较新的es语法,之前,我们安装的是babel-preset-es2015,现在,出了一个更新的语法插件,叫做 babel-preset-env ,它包含了所有的 和es **相关的语法。

Vue学习之Babel配置(十六)的更多相关文章

  1. Vue学习之路第十六篇:车型列表的添加、删除与检索项目

    又到了大家最喜欢的项目练习阶段,学以致用,今天我们要用前几篇的学习内容实现列表的添加与删除. 学前准备: ①:JavaScript中的splice(index,i)方法:从已知数组的index下标开始 ...

  2. 深度学习课程笔记(十六)Recursive Neural Network

    深度学习课程笔记(十六)Recursive Neural Network  2018-08-07 22:47:14 This video tutorial is adopted from: Youtu ...

  3. Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十六章:实例化和截头锥体裁切

    原文:Introduction to 3D Game Programming with DirectX 12 学习笔记之 --- 第十六章:实例化和截头锥体裁切 代码工程地址: https://git ...

  4. Dynamic CRM 2013学习笔记(四十六)简单审批流的实现

    前面介绍过自定义审批流: Dynamic CRM 2013学习笔记(十九)自定义审批流1 - 效果演示 Dynamic CRM 2013学习笔记(二十一)自定义审批流2 - 配置按钮 Dynamic ...

  5. UNP学习笔记(第二十六章 线程)

    线程有时称为轻权进程(lightweight process) 同一进程内的所有线程共享相同的全局内存.这使得线程之间易于共享信息,然后这样也会带来同步的问题 同一进程内的所有线程处理共享全局变量外还 ...

  6. FastAPI 学习之路(十六)Form表单

    系列文章: FastAPI 学习之路(一)fastapi--高性能web开发框架 FastAPI 学习之路(二) FastAPI 学习之路(三) FastAPI 学习之路(四) FastAPI 学习之 ...

  7. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

  8. Linux学习之CentOS(二十六)--Linux磁盘管理:LVM逻辑卷的创建及使用

    在上一篇随笔里面 Linux学习之CentOS(二十五)--Linux磁盘管理:LVM逻辑卷基本概念及LVM的工作原理,详细的讲解了Linux的动态磁盘管理LVM逻辑卷的基本概念以及LVM的工作原理, ...

  9. vue 学习 cli3常用配置

    ---恢复内容开始--- cli3以后,构建的项目更加的简洁,配置文件也没有向cli2那样暴漏出来,但这并不代表cli3是不可配置的,我们只需要在根目录下添加一个vue.config.js作为项目的配 ...

随机推荐

  1. Linux环境下安装python3

    1.安装前准备 CentOS 7 中默认安装了 Python,版本:2.7.5,由于很多基本的命令.软件包都依赖旧版本,比如:yum.所以,在更新 Python 时,建议不要删除旧版本,而且新旧版本可 ...

  2. Python知乎上推荐的项目

    原文地址:https://www.zhihu.com/question/29372574/answer/88744491 作者:Wayne Shi链接:https://www.zhihu.com/qu ...

  3. 【C++】C++中的类模板

    基础的类模板 模板类的继承 内部声明定义普通模板函数和友元模板函数 内部声明友元模板函数+外部定义友元模板函数 声明和定义分别在不同的文件(模板函数.模板友元) C++中有一个重要特性,那就是模板类型 ...

  4. 【APM】Pinpoint 使用教程(二)

    本例介绍Pinpoint使用教程 Pinpoint安装部署参考:[APM]Pinpoint 安装部署(一) 查看应用调用关系拓扑图 进入pintpoint->选择应用-〉选择查看的时间周期,即可 ...

  5. Callback must be a function. Received undefined

    fs.js:143 throw new ERR_INVALID_CALLBACK(cb); ^ TypeError [ERR_INVALID_CALLBACK]: Callback must be a ...

  6. iOS - 浮点数去掉小数点之后的0,以0.5小数递增函数

    NSMutableArray *arrNumber = [NSMutableArray array]; float a = -0.5; ) { a+=0.5; NSString *str = [sel ...

  7. [转]How to Install Oracle Java 11 in Ubuntu 18.04/18.10

    链接地址:http://ubuntuhandbook.org/index.php/2018/11/how-to-install-oracle-java-11-in-ubuntu-18-04-18-10 ...

  8. VM无法正常使用桥接模式获取IP上网

    问题: 有时候会遇到VM使用桥接模式时无法正常获取IP的情况 原因: 初步怀疑是因为你的电脑是双网卡 解决方法: 这时候,就需要修改VM的虚拟网络编辑器的配置 解决步骤: 编辑->虚拟网络编辑器 ...

  9. SpringBoot小技巧:统一异常处理

    SpringBoot小技巧:统一异常处理 情景描述 对于接口的定义,我们通常会有一个固定的格式,比如: 但是调用方在请求我们的API时把接口地址写错了,就会得到一个404错误,且不同于我们定义的数据格 ...

  10. IntelliJ IDEA(2018.3.5) 设置编码为utf-8编码

    位置一: File->Settings->Editor->File Encodings   位置二: File->Other Settings->Default Sett ...