使用指南 · Babel 中文文档

自动化上位机开发C#100例:如何用面向对象的方式封装雷赛运动控制卡EtherCAT总线卡(C#代码) 自动化上位机开发C#100例:雷赛运动控制卡EtherCAT总线卡C#封装类。 阅读详情

Babel 工具链是由大量的工具组成的,无论你是 “最终用户” 还是在集成 Babel,这些工具都简化了 Babel 的使用。本文是对这些工具的使用方法的快速介绍,你可以在文档的 “用法” 章节了解到更多信息。

如果你正在使用的是一套框架,Babel 的配置可能会有所不同,也可能已经自动为你配置好了。请参考 交互式配置指南 了解更多信息。

📖 在Js中文网 -前端进阶资源教程,上查看本手册

概览

本指南将想你展示如何将 ES2015+ 语法的 JavaScript 代码编译为能在当前浏览器上工作的代码。这将涉及到新语法的转换和缺失特性的修补。

整个配置过程包括:

  1. 运行以下命令安装所需的包(package):
 sh
    npm install --save-dev @babel/core @babel/cli @babel/preset-env
    npm install --save @babel/polyfill


  1. 在项目的根目录下创建一个命名为 babel.config.js 的配置文件,其内容为:
 js
    const presets = [
      [
        "@babel/env",
        {
          targets: {
            edge: "17",
            firefox: "60",
            chrome: "67",
            safari: "11.1",
          },
          useBuiltIns: "usage",
        },
      ],
    ];

    module.exports = { presets };


> 上述浏览器列表仅用于示例。根据你所需要支持的浏览器进行调整。
  1. 运行此命令将 src 目录下的所有代码编译到 lib 目录:
 sh
    ./node_modules/.bin/babel src --out-dir lib


你可以利用 npm@5.2.0 所自带的 npm 包运行器将 ./node_modules/.bin/babel 命令缩短为 npx babel

继续阅读后面的分步讲解,了解其工作原理以及每个工具的功能。

Js中文网 - 前端进阶资源教程 www.javascriptC.com ,Babel中文文档
一个致力于帮助开发者用代码改变世界为使命的平台

CLI 命令行的基本用法

你所需要的所有的 Babel 模块都是作为独立的 npm 包发布的,并且(从版本 7 开始)都是以 @babel 作为冠名的。这种模块化的设计能够让每种工具都针对特定使用情况进行设计。 下面我们着重看一下 @babel/core 和 @babel/cli。

核心库

Babel 的核心功能包含在 @babel/core 模块中。通过以下命令安装:

 sh
npm install --save-dev @babel/core


你可以在 JavaScript 程序中直接 require 并使用它:

 js
const babel = require("@babel/core");

babel.transform("code", optionsObject);


作为一名最终用户,你可以还需要安装其他工具作为 @babel/core 的使用接口并很好地集成到你的开发流程中。即便如此,你仍然需要查看其文档并了解可用的参数,其中很多参数也可以通过其他工具进行设置。

CLI 命令行工具

@babel/cli 是一个能够从终端(命令行)使用的工具。下面是其安装命令和基本用法:

 sh
npm install --save-dev @babel/core @babel/cli

./node_modules/.bin/babel src --out-dir lib


这将解析 src 目录下的所有 JavaScript 文件,并应用我们所指定的代码转换功能,然后把每个文件输出到 lib 目录下。由于我们还没有指定任何代码转换功能,所以输出的代码将与输入的代码相同(不保留原代码格式)。我们可以将我们所需要的代码转换功能作为参数传递进去。

上面的示例中我们使用了 --out-dir 参数。你可以通过 --help 参数来查看命令行工具所能接受的所有参数列表。但是现在对我们来说最重要的是 --plugins 和 --presets 这两个参数。

插件和预设(preset)

代码转换功能以插件的形式出现,插件是小型的 JavaScript 程序,用于指导 Babel 如何对代码进行转换。你甚至可以编写自己的插件将你所需要的任何代码转换功能应用到你的代码上。例如将 ES2015+ 语法转换为 ES5 语法,我们可以使用诸如 @babel/plugin-transform-arrow-functions 之类的官方插件:

 sh
npm install --save-dev @babel/plugin-transform-arrow-functions

./node_modules/.bin/babel src --out-dir lib --plugins=@babel/plugin-transform-arrow-functions


现在,我们代码中的所有箭头函数(arrow functions)都将被转换为 ES5 兼容的函数表达式了:

Js中文网 - 前端进阶资源教程 www.javascriptC.com ,Babel中文文档
一个致力于帮助开发者用代码改变世界为使命的平台

 js
const fn = () => 1;

// converted to

var fn = function fn() {
  return 1;
};


这是个好的开始!但是我们的代码中仍然残留了其他 ES2015+ 的特性,我们希望对它们也进行转换。我们不需要一个接一个地添加所有需要的插件,我们可以使用一个 “preset” (即一组预先设定的插件)。

就像插件一样,你也可以根据自己所需要的插件组合创建一个自己的 preset 并将其分享出去。J对于当前的用例而言,我们可以使用一个名称为 env 的 preset。

 sh
npm install --save-dev @babel/preset-env

./node_modules/.bin/babel src --out-dir lib --presets=@babel/env


如果不进行任何配置,上述 preset 所包含的插件将支持所有最新的 JavaScript (ES2015、ES2016 等)特性。但是 preset 也是支持参数的。我们来看看另一种传递参数的方法:配置文件,而不是通过终端控制台同时传递 cli 和 preset 的参数。

配置

根据你的需要,可以通过几种不同的方式来使用配置文件。另外,请务必阅读我们关于如何 配置 Babel 的深入指南以了解更多信息。

现在,我们首先创建一个名为 babel.config.js 的文件,并包含如下内容:

 js
const presets = [
  [
    "@babel/env",
    {
      targets: {
        edge: "17",
        firefox: "60",
        chrome: "67",
        safari: "11.1",
      },
    },
  ],
];

module.exports = { presets };


现在,名为 env 的 preset 只会为目标浏览器中没有的功能加载转换插件。语法都已经清楚了,接下来我们看看 polyfills 。

Polyfill

@babel/polyfill 模块包括 core-js 和一个自定义的 regenerator runtime 模块用于模拟完整的 ES2015+ 环境。

这意味着你可以使用诸如 Promise 和 WeakMap 之类的新的内置组件、 Array.from 或 Object.assign 之类的静态方法、 Array.prototype.includes 之类的实例方法以及生成器函数(generator functions)(前提是你使用了 regenerator 插件)。为了添加这些功能,polyfill 将添加到全局范围(global scope)和类似 String 这样的内置原型(native prototypes)中。

对于软件库/工具的作者来说,这可能太多了。如果你不需要类似 Array.prototype.includes 的实例方法,可以使用 transform runtime 插件而不是对全局范围(global scope)造成污染的 @babel/polyfill。

更进一步,如哦你确切地指导你所需要的 polyfills 功能,你可以直接从 core-js 获取它们。

由于我们构建的是一个应用程序,因此我们只需安装 @babel/polyfill 即可:

 sh
npm install --save @babel/polyfill


注意,使用 --save 参数而不是 --save-dev,因为这是一个需要在你的源码之前运行的 polyfill。

幸运的是,我们所使用的 env preset 提供了一个 "useBuiltIns" 参数,当此参数设置为 "usage" 时,就会加载上面所提到的最后一个优化措施,也就是只包含你所需要的 polyfill。使用此新参数后,修改配置如下:

 js
const presets = [
  [
    "@babel/env",
    {
      targets: {
        edge: "17",
        firefox: "60",
        chrome: "67",
        safari: "11.1",
      },
      useBuiltIns: "usage",
    },
  ],
];

module.exports = { presets };


Babel 将检查你的所有代码,以便查找目标环境中缺失的功能,然后只把必须的 polyfill 包含进来。示例代码如下:

 js
Promise.resolve().finally();


将被转换为(由于 Edge 17 没有 Promise.prototype.finally):

 js
require("core-js/modules/es.promise.finally");

Promise.resolve().finally();


如果我们不使用 env preset 的 "useBuiltIns" 参数(即设置为 "usage"),那么我们必须在所有代码之前通过 require 加载一次完整的 polyfill。

总结

我们使用 @babel/cli 从终端运行 Babel,利用 @babel/polyfill 来模拟所有新的 JavaScript 功能,而 env preset 只对我们所使用的并且目标浏览器中缺失的功能进行代码转换和加载 polyfill。

有关针对构建系统、IDE 等设置 Babel 的详细信息,请参阅 交互式设置指南。

推荐阅读:

领略前端前沿,关注IT平头哥联盟,做有温度的攻城狮!,公众号:honeyBadger8

来源:Js中文网 - 前端进阶资源教程
链接:https://www.javascriptc.com/docs/babel-manual/usage

10天冲刺国自然基金!用这套实战AI提示词指令教程,助你中标率翻倍!亲测DeepSeek和ChatGPT不好用 虽然以上国自然提示词指令经过反复实测,但并不是万能无脑帮你搞定所有,大模型AI的特性是你专业领域能力越强,它的智商表现就会更加强大,通过以上提示词教程的使用,大大提升中标概率是肯定的。还有就是大模型的使用上,不是市面上大家都说好的就一定适用,目前来看,Gemini和Claude的两个模型是非常适合国自然本子的修改的。在使用大模型进行国自然本子撰写修改时,首先是角色的设定,然后是目标和背景的描述,好用的提示词指令都是要经过无数次的实测,比对输出结果后又反复调整,达到最佳的效果状态的提示词指令。 阅读详情

相关推荐

Android:Google三方库之Adjust集成详细步骤

Android为APP添加google adjust功能

学习就是我的个性 4477

babel转码器的使用

babel转码器的使用

weixin_54345825的博客 1059

ROS2实战:打造智能巡检机器人的关键技术与实现

本文详细介绍了基于ROS2和Navigation2构建智能巡检机器人的完整实战流程。通过设计主从协作的事件驱动架构,实现了机器人在已知地图中的自动导航、定点语音播报和环境图像采集功能。文章涵盖了从环境搭建、仿真配置到核心控制节点、语音服务与图像记录模块的代码实现,为开发者打造实用的自动巡检机器人提供了清晰的技术指南。

weixin_29031057的博客 226

【Babel 详细教程】概述,安装,使用,自定义脚本

前言:学习自:https://www.bilibili.com/video/BV1BU4y147pS?p=24 文章目录一、Babel 概述1、简介2、安装二、使用三、自定义脚本 一、Babel 概述 1、简介 ES6 的某些高级语法在某些浏览器环境甚至是 Node.js 环境中无法执行,Babel 是一个广泛使用的转码器,可以将 ES6 代码转化为 ES5 代码(原理其实利用就是一个ES6 语法糖 至 ES5 语法的映射表作为中介转换,总而将实际代码转换为 ES5 版本),从而在现有的环境中执行运行,.

Zhou_LC的博客 1103

STM32驱动AD2S1210实现旋变解码与角度读取

旋转变压器作为一种耐高温、抗振动的角度传感器,在工业伺服、机器人关节和电动汽车电驱等场景中占据重要地位。其输出信号需要经过专用转换芯片处理才能被MCU高效使用。AD2S1210是一款典型的旋变数字转换器(RDC),内部采用Type II型跟踪环,将模拟SIN/COS信号实时解算为数字角度与速度,降低了处理器负担并提升抗干扰能力。本文基于STM32平台,详细介绍了AD2S1210的硬件接线、SPI通信配置、寄存器初始化流程,以及读取位置数据时的SAMPLE脉冲时序等关键实现。同时总结了常见故障如全FF、角度跳

weixin_34194829的博客 196

基于大模型的急性重症胰腺炎全流程预测与诊疗方案研究

本研究构建了基于大模型的急性重症胰腺炎(SAP)全流程预测与诊疗系统,实现了从术前风险评估到术后康复管理的精准诊疗闭环。通过整合临床信息、实验室检查和影像学等多源数据,模型在测试集上预测准确率达X%,AUC为X,显著优于传统评分系统。研究创新性地将预测结果应用于手术方案制定、麻醉决策、并发症防控及个性化护理,形成智能化诊疗方案。验证结果显示模型具有良好的稳定性和临床适用性,同时配套的健康教育体系提升了患者自我管理能力。尽管存在样本局限性和模型可解释性等不足,该研究为SAP的精准诊疗提供了新范式,未来可通过扩

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1116

babel 简明使用

babel基础用法

1336

Replay音频转换时samplerate缺失的解决方案指南

Replay音频转换时提示"No module named 'samplerate' This error is lazily reported, having originally occured in File"的解决方案

weixin_47445543的博客 2137

Babel入门·Babel 中文文档

Babel 是一个 JavaScript 编译器。Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。下面列出的是 Babel 能为你做的事情:语法转换,通过 Polyfill 方式在目标环境中添加缺失的特性 (通过 @babel/polyfill 模块),源码转换 (codemods,Js中文网 www.javascriptc.com)

Js中文网 - www.javascriptc.com 2079

详解岭回归与L2正则化

最小二乘法存在不可逆和病态问题,导致解析解不可计算或不稳定,岭回归是一种有效的解决方法,以损失无偏性来换取稳定解, 本文介绍详细介绍了岭回归的基本原理,并从L2正则化角度来进行了解释。

Luoyingfeng的博客 1万+

基于STM32设计的智能防盗单车锁_349

本设计基于STM32F103RCT6单片机,研制了一种适用于户外环境的智能防盗单车锁系统。系统集成了GPS定位模块、ADXL345加速度传感器、4G通信模块(Air780E)、OLED显示屏、继电器模拟锁控模块等硬件,通过姿态感知实现车辆异常移动检测,在锁车状态下自动触发蜂鸣器报警并通过短信与APP通知用户。

868

插件 · Babel 中文文档

Babel 是一个编译器(输入源码 => 输出编译后的代码)。就像其他编译器一样,编译过程分为三个阶段:解析、转换和打印输出。现在,Babel 虽然开箱即用,但是什么动作都不做。它基本上类似于 const babel = code => code; ,将代码解析之后再输出同样的代码。如果想要 Babel 做一些实际的工作,就需要为其添加插件。

Js中文网 - www.javascriptc.com 695

14、Java 中 TAF 和 FCF 的使用及 Oracle 数据库升级与迁移指南

本文详细介绍了Java中实现高可用性的TAF(透明应用故障转移)和FCF(快速连接故障转移)技术,以及如何将Oracle 9iR2 RAC环境升级到10gR2 RAC,并将数据从OCFS迁移到ASM。通过示例代码和操作步骤,帮助开发者和数据库管理员更好地应对数据库故障和数据迁移问题,提升系统的可用性和性能。

egg99的博客 111

配置 Babel · Babel 中文文档

Babel 也由配置文件!许多其他工具都有类似的配置文件:ESLint (.eslintrc)、Prettier (.prettierrc)。所有 Babel API [参数][1] 都可以被配置。然而,Js中文网 www.javascriptc.com,如果该参数需要用到 JavaScript 代码,你可能需要使用 JavaScript 代码版的,

Js中文网 - www.javascriptc.com 5879

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Babel 是什么?· Babel 中文文档

Babel 是一个工具链,主要用于将 ECMAScript 2015+ 版本的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。下面列出的是 Babel 能为你做的事情……Js中文网 www.javascriptc.com

Js中文网 - www.javascriptc.com 1412

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

升级到 Babel 7 · Babel 中文文档

Refer users to this document when upgrading to Babel 7.Because not every breaking change will affect every project, we've sorted the sections by the likelihood of a change breaking tests when upgrading.

Js中文网 - www.javascriptc.com 2781

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

升级到 Babel 7 (API) · Babel 中文文档

Refer users to this document when upgrading to Babel 7.Also check out the [v7-migration guide][1] for other user-level changes.

Js中文网 - www.javascriptc.com 1892

Babel 文档网站项目推荐

Babel 文档网站项目推荐 项目基础介绍和主要编程语言 Babel 文档网站项目(https://github.com/babel/website.git)是 Babel 项目的官方文档网站。Babel 是一个广泛使用的 JavaScript 编译器,主要用于将 ECMAScript 2015+ 代码转换为向后兼容的 JavaScript 版本,以便在当前和旧版本的浏览器或其他环境中运行。该项目...

gitblog_00861的博客 361

Babel是什么?Babel到底可以用来干嘛___一文带你从零开始认识Babel

引入 在此之前或许你已经用过babel,也许听说过什么 babel-loader babel-core、babel-cli、babel-plugin-…、babel-preset-env 反正各种乱七八糟的做项目随便用一一下就可以了,对他只有个一知半解,甚至不知道他到底是干什么的,反正项目要用,照着用就行了,至少博主之前的状态是这样,如果只对他有个一知半解甚至都不了解,那么项目出bug了你都不知道怎么去调试,只能复制–>粘贴–>百度。 基于此,写下自己对Babel的理解。 Babel是什么? 我

Sumshine12.5 2万+

Babel文档

介绍 Babel 是一个通用的多用途 JavaScript 编译器。通过 Babel 你可以使用(并创建)下一代的 JavaScript,以及下一代的 JavaScript 工具。 作为一种语言,JavaScript 在不断发展,新的标准/提案和新的特性层出不穷。 在得到广泛普及之前,Babel 能够让你提前(甚至数年)使用它们。 Babel 把用最新标准编写的 JavaScript ...

Yang Yong 的博客 745

常见问题 · Babel 中文文档

为什么 `for...of` 被转换之后如此冗长且丑陋?为了符合规范,迭代器(iterator)的返回方法必须是 出错时才能调用。另一个方法是启用 [宽松模式(loose mode), 但是请注意,如果你启用了宽松模式(loose mode)会收到 很多 警告, 并且你的选择将导致代码不符合规范。

Js中文网 - www.javascriptc.com 598

Babel社区贡献指南:如何为Babel文档网站提交PR

Babel作为JavaScript的编译器,帮助开发者将新语法转换为向后兼容的代码,是现代前端开发不可或缺的工具。其文档网站作为开发者获取信息的主要渠道,需要社区的积极参与来保持内容的准确性和时效性。本文将详细介绍如何为Babel文档网站提交PR(Pull Request),为开源社区贡献自己的力量。 ## 一、准备工作:环境搭建与仓库克隆 在开始贡献之前,需要确保本地环境满足项目的要求。Ba

gitblog_00706的博客 475

预设(Presets) · Babel 中文文档

不想自己动手组合插件?没问题!preset 可以作为 Babel 插件的组合,甚至可以作为可以共享的 options 配置。

Js中文网 - www.javascriptc.com 1472

Babel文档网站部署指南:如何快速搭建本地文档开发环境

Babel作为JavaScript生态中最重要的编译器工具之一,其官方文档网站是开发者学习和使用Babel的重要资源。本文将为您提供完整的Babel文档网站本地开发环境搭建指南,让您能够轻松地在本地运行和修改Babel文档,为开源项目贡献文档或进行个性化定制。 ## 📋 环境准备与项目克隆 在开始搭建Babel文档网站开发环境之前,您需要确保系统满足以下基本要求: ### 系统要求检查清单

gitblog_00696的博客 1014

Babel 插件官方文档

Babel 插件手册 这篇文档涵盖了如何创建 Babel 插件等方面的内容。. [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rz97CkRJ-1585659834039)(https://licensebuttons.net/l/by/4.0/80x15.png)] 这本手册提供了多种语言的版本,查看 自述文件 里的完整列表。 目录 介绍 基础 抽象语法树(A...

huahua的博客 1492

编辑器 · Babel 中文文档

现在,许多流行的编辑器都支持 ES2015+ 语法的高亮显示, 并且此功能开箱即用,然后有一些编辑器则需要安装额外的扩展。 本指南将帮助你为编辑器添加语法高亮的功能。如果你需要更高级的集成方式,可以 查看js中文网-前端进阶资源教程

Js中文网 - www.javascriptc.com 246
上一篇: Babel 是什么?· Babel 中文文档
下一篇: 配置 Babel · Babel 中文文档
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值