bable 【实用教程】

简介: bable 【实用教程】

简介

bable 用于将 ES6 的语法编译为 ES5

  • 只关心语法,不关心 API 是否正确。
  • 不处理模块化(webpack 会处理)

搭建开发环境

  1. 安装相关的包
npm i @babel/cli @babel/core @babel/preset-env
  1. 新建文件 .babelrc,内容为
{ 
    "presets": [
        [
            "@babel/preset-env"
        ]
    ],
    "plugins": [
    ]
}
  • presets 内为预设的 plugins 的集合
  • 编译 jsx,用 @bakel/preset-react
  • 编译 TS,用 @babel/preset-typescript
  • bable 本身是个空壳,所有的编译是通过一个个 plugins 实现的

执行编译

npx babel src/index.js

babel-polyfill

babel-polyfill 是 core-js 和 regenerator 的集合。

  • core-js 除了不支持生成器语法,其他都能编译
  • regenerator 可编译生成器语法,弥补了 core-js 的不足

注意事项:

Babel 7.4之后弃用了 babel-polyfil,推荐直接使用 core-js和 regenerator,但面试中还是可能考察。

按需引入的配置方法

按需引入:只引入代码中使用的部分,其他部分不引入,可减少最终打包的体积。

.babelrc

"presets": [
    [
        "@babel/preset-env",
        {
            "useBuiltIns": "usage",
            // corejs 的最新版本号
            "corejs": 3
        }
    ]
],

abel 7.4之后弃用了 babel-polyfil,但也是按此方式配置,因为它直接用的 corejs ,没有用到 babel-polyfil

存在的问题

会污染全局环境,因为其实现方式是:

可能会覆盖用户的定义。

babel-runtime

用于解决 babel-polyfil 污染全局环境的问题。

仅自己开发的系统,可以不使用 babel-runtime ,但若是开发第三方库,则一定要用 babel-runtime

实现原理

使用 _promise ,_includes 等自定义名称的方式,避免和用户的定义冲突。

配置方法

  1. 安装 @babel/plugin-transform-runtime 在 devDependencies 中
  2. 安装 @babel/runtime 在 dependencies 中
  3. .babelrc 的 plugins 中添加
    "plugins": [
        [
            "@babel/plugin-transform-runtime",
            {
                "absoluteRuntime": false,
                "corejs": 3,
                "helpers": true,
                "regenerator": true,
                "useESModules": false
            }
        ]
    ]

通常按此官方配置即可。

目录
相关文章
|
9月前
|
人工智能 PyTorch TensorFlow
人工智能应用工程师技能提升系列1、——TensorFlow2
人工智能应用工程师技能提升系列1、——TensorFlow2
129 0
|
5月前
|
机器学习/深度学习 数据挖掘 TensorFlow
从数据小白到AI专家:Python数据分析与TensorFlow/PyTorch深度学习的蜕变之路
【9月更文挑战第10天】从数据新手成长为AI专家,需先掌握Python基础语法,并学会使用NumPy和Pandas进行数据分析。接着,通过Matplotlib和Seaborn实现数据可视化,最后利用TensorFlow或PyTorch探索深度学习。这一过程涉及从数据清洗、可视化到构建神经网络的多个步骤,每一步都需不断实践与学习。借助Python的强大功能及各类库的支持,你能逐步解锁数据的深层价值。
91 0
|
7月前
|
机器学习/深度学习 人工智能 TensorFlow
🔥零基础逆袭!Python数据分析+机器学习:TensorFlow带你秒变AI大师
【7月更文挑战第29天】在这个数据驱动的时代,掌握Python与机器学习技能是进入AI领域的关键。即使从零开始,也能通过TensorFlow成为AI专家。
81 8
|
8月前
|
数据采集 人工智能 运维
有趣、实用!专为小白设计的Python零基础入门到人工智能教程
2017年7月,国务院发布的《新一代人工智能发展规划》提出,要在中小学阶段设置人工智能相关课程,并逐步推广编程教育。 Python 是一种通用型编程语言,它具有良好的可扩展性和适应性,易于学习,被广泛应用于云计算、人工智能、科学运算、Web 开发、网络爬虫、系统运维、图形GU1、金融量化投资等众多领域。无论是客户端、云端,还是物联网终端,都能看到Python 的身影,可以说,Python的应用无处不在。 特别是在移动互联网和人工智能时代,Pvthon 越来越受到编程者的青睐,成为近年来热度增长最快的编程语言之一。在 TIOBE、RedMonk 等世界编程语言排行榜中,Python 语言名列前茅
|
9月前
|
机器学习/深度学习 人工智能 算法
入门人工智能的书籍推荐
入门人工智能的书籍推荐
|
机器学习/深度学习 人工智能 IDE
人工智能教程(一):基础知识
人工智能教程(一):基础知识
118 0
|
人工智能 算法 TensorFlow
AI小白徒手搭建人工智能平台
好,我是小马学AI的小编,是一名在职的核电仪控工程师,博主从事AI外呼技术多年,有问题或要演示站找博主,免费技术支持。专业是核电厂主控制室信息处理,由于在工作中会涉及到一些相关的数据处理领域,因此渐渐对人工智能产生了兴趣
|
人工智能 TensorFlow 算法框架/工具
人工智能|Tensorflow-2.0学习笔记:基础操作篇一
人工智能|Tensorflow-2.0学习笔记:基础操作篇一
148 0
|
机器学习/深度学习 Web App开发 搜索推荐
GitHub标星23k+,从零开始的深度学习实用教程 | PyTorch官方推荐
背景基础部分,除了有Python指南、笔记本用法,以及Numpy、Pandas这些库的用法,还有线性规划、逻辑规划、随机森林、k-means聚类这些机器学习的基本技术。
GitHub标星23k+,从零开始的深度学习实用教程 | PyTorch官方推荐
|
机器学习/深度学习 人工智能 自然语言处理
人工智能实践Tensorflow笔记:人工智能概述-1
人工智能实践Tensorflow笔记:人工智能概述-1
144 0
人工智能实践Tensorflow笔记:人工智能概述-1