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

通常按此官方配置即可。

目录
相关文章
|
5月前
|
弹性计算 运维 自然语言处理
古希腊掌管Linux运维の神
阿里云的OS Copilot是专为Alibaba Cloud Linux 3设计的智能助手,提供命令行自然语言问答、辅助命令执行、阿里云CLI调用和系统运维调优等功能,简化Linux操作,尤其适合新手用户。要体验OS Copilot,用户需在x86平台的Alibaba Cloud Linux 3上使用,可通过ECS、KVM或Docker。免费试用ECS、学生优惠及老用户套餐可从阿里云官网获取。安装OS Copilot后,配置AK并使用`co`或`copilot`命令即可开始使用。该助手目前在与阿里云生态集成方面仍有提升空间。
|
7月前
|
开发工具 数据库 git
通俗易懂!看漫画学Python入门教程(全彩版)Git首发破万Star
很多编程语言书读起来都略显晦涩,让不少读者望而却步,很难坚持读完。关老师的新书另辟蹊径,以漫画形式切入,生动有趣,把复杂的技术点和编程知识讲解得通俗易懂真正体现了一图胜干言的道理。而且每章结束时都有“练一练”环节,能够帮助读者夯实基础、锻炼技能。不得不说,这是一本Python入门和进阶佳作。
|
6月前
|
存储 设计模式 算法
Python基础教程(第3版)中文版 第19章 趣味编程 (笔记)
Python基础教程(第3版)中文版 第19章 趣味编程 (笔记)
|
运维 前端开发 Java
最新最佳最重要的计算机相关网站推荐(更新版)
标题最新最佳最重要的计算机相关网站推荐 1、Github代码托管(https://github.com/)
234 1
最新最佳最重要的计算机相关网站推荐(更新版)
|
SQL 前端开发 JavaScript
情人节Github开源项目大“赏”,花样表白她!
情人节Github开源项目大“赏”,花样表白她!
557 0
情人节Github开源项目大“赏”,花样表白她!
|
Web App开发 编解码 安全
⭐程序员必备软件图鉴⭐(建议收藏)
⭐程序员必备软件图鉴⭐(建议收藏)
⭐程序员必备软件图鉴⭐(建议收藏)
|
安全 NoSQL 机器人
准网安研究生の服务器初体验
小菜鸡第一次使用云服务器的体验
|
存储 数据管理 Java
六十年前的上古编程语言教程登上GitHub榜首,退休老程序员如何焕发第二春?
六十年前的上古编程语言教程登上GitHub榜首,退休老程序员如何焕发第二春?
190 0

热门文章

最新文章