npm 包 @babel/preset-env 使用教程

面试官:小伙子,你的代码为什么这么丝滑?

基础介绍

@babel/preset-env 是一个 Babel 插件,它包含了所有可以支持的 ECMAScript 特性,并可以根据你的 target 来自动添加所需的语法转换,以实现更好的浏览器兼容性。

简而言之,如果你使用了最新的 JavaScript 语法,但又需要兼容旧版浏览器,那么 @babel/preset-env 就是你的救星!

安装方式

你可以通过 npm 或 yarn 来安装该库。在绝大多数情况下我们都会使用 npm,那么我们可以像下面这样安装:

--- ------- ---------- ----------- -----------------

或者使用 yarn:

---- --- ----- ----------- -----------------

如何使用

安装完必要的依赖后,我们需要在 .babelrc 文件中配置一下。

先来一个 minimal 的配置,只处理 ES6 的语法转换:

-
  ---------- ---------------------
-

这样完全没有问题,但是需求通常是让我们的代码可以在旧版本浏览器上运行。那么我们需要指定 env 的 target 了。

下面是常见的浏览器:

  • { "chrome": "58", "edge": "13", "firefox": "54", "safari": "11.1" } 表示最新版的 Chrome 以及 Edge、Firefox、Safari (包括移动版)中最低支持的版本是对应数字的版本

  • 还有更精细的设置,例如 { "firefox": "50", "chrome": ["49", "55"], "safari": "10.1" },表示 Firefox >=50、Chrome >=49 且 <55,Safari 版本 >=10.1

下面是修改后的 .babelrc 文件:

-
  ---------- -
    -
      --------------------
      -
        ---------- -
          ----------- -
           ----- - ----------
           -- ----
           --- -- --
          -
        -
      -
    -
  -
-

别忘了,我们还可以为每个运行环境指定不同的 @babel/present-env 配置。

除了上述的配置,我还总结了常用的指南和配置项:

常用配置

除了上述的最基本配置外,我们还可以通过一些配置项让我们的编译结果变得不同。

  • debug

默认为false。如果为true,打印所有插件使用情况以及配置。

-
  ---------- -
    --------------------- -
      -------- ----
    --
  -
-
  • modules

默认为 auto。可以是 false 或者 "commonjs",或者 "umd"、"amd" 等其中之一。

-
  ---------- -
    --------------------- -
      ---------- -----
    --
  -
-
  • shippedProposals

默认为 false 。用于支持特定版本将来的 ECMAScript 提案,可能导致编译时间和编译后的输出增大,因此在生产环境中应该禁用。

-
  ---------- -
    --------------------- -
      ------------------- ----
    --
  -
-
  • useBuiltIns

默认为false。告诉 Babel是否使用 polyfill 方法来更好地模拟使用 ECMAScript 6+ 做出的更改并带有 targets。

下面是具体用法:

-
  ---------- -
    --------------------- -
      -------------- --------
      --------- --
      ---------- -
        --------- -----
        ----- ----
      -
     --
  -
-

示例代码

最后给大家分享一下 @babel/preset-env 如何使用 Promise:

首先,我们安装依赖

--- ------- ---------- ----------------------------------- --------------

然后修改 .babelrc 文件如下:

-
  ---------- -
    -
      --------------------
      -
        ---------- ------
        ---------- -
          ----------- -
            ----- - ------ ----------
            ----- - ------- ----------
            ----- - ------ ----------
            ----- - ---- ----------
            --- ---
          -
        -
      -
    -
  --
  ---------- -
    -
      --------------------------------------
      -
        ------------------ -----
        --------------- -----
        ------------- -----
        -------- ----
      -
    -
  -
-

------ -----------------
------ ------------------------------

----------------------------------------

使用上述配置后,编译后的文件即可以在 main 浏览器上顺利运行了,即使你使用了最新的 JavaScript 语法。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/85884


猜你喜欢

  • npm 包 text-metadata-parser 使用教程

    随着计算机技术的日益发展,文本处理成为了各个领域的重要工具。text-metadata-parser 是一个强大的 npm 包,可以帮助开发者轻松地处理文本内容。在本文中,我们将详细介绍 text-m...

    5 年前
  • npm 包 key-master 使用教程

    概述 key-master 是一个可以帮助前端程序员对页面上的按键进行管理的 npm 包。通过 key-master,开发者可以更加方便地监听键盘事件,并自由定制按键的响应事件,提升了前端开发的速度和...

    5 年前
  • npm 包 gate-keeper 使用教程

    前言 在开发过程中,我们时常会面临身份验证的问题。而 npm 包 gate-keeper 就是为了解决这个问题而诞生的。它能够很好地为我们的应用提供安全的访问控制策略,保护我们的 API 和应用程序不...

    5 年前
  • npm 包 expire-unused-keys 使用教程

    在前端开发中,我们经常需要使用一些缓存和存储技术来提高应用程序的性能和用户体验。其中,缓存和存储键值对是很常见的处理方式,但是,对于一些使用频率不高的键,如果不及时清理,会造成存储空间的浪费。

    5 年前
  • npm 包 gl-tile-map 使用教程

    前言 gl-tile-map 是一个 npm 包,它提供了一个可渲染的、与地图瓦片无关的 WebGL 地图。gl-tile-map 能够轻松地将地图瓦片作为纹理上传到 GPU,并以极快的速度渲染大量地...

    5 年前
  • npm 包 ndarray-downsample2x 使用教程

    前言 在前端开发中,我们经常需要处理图像数据。对于一张高分辨率的图片,其文件大小很大,会导致网页加载缓慢,而且过多的像素点也会影响图片处理的效率。这时候如何压缩图片并减少像素点就成了我们需要解决的问题...

    5 年前
  • npm 包 scene-dom 使用教程

    引言 在日常前端开发中,我们经常需要在网页中创建一些复杂的场景。这些场景可能包括各种各样的物体、动画、交互等等。而要实现这样的场景,我们需要使用一些强大的库。而 scene-dom 就是一个非常适合前...

    5 年前
  • npm 包 ndarray-stl 使用教程

    简介 ndarray-stl 是一个基于 ndarray 库的 JavaScript 库,旨在提供对 STL 文件进行读取和写入的能力。STL 全称是 Standard Triangle Langua...

    5 年前
  • npm 包 ao-shader 使用教程

    前言 ao-shader 是一个前端开发中非常实用的 npm 包,它提供了对着色器材质的支持,让我们可以在前端应用中实现更为复杂的视觉效果。本文将详细介绍 ao-shader 的使用方法,以及如何在实...

    5 年前
  • npm 包 greedy-mesher 使用教程

    在前端开发中,我们经常会遇到需要合并 3D 模型的场景。在这样的场景中,往往需要动态生成 3D 模型并进行优化,以提高页面的响应速度和用户体验。而 grepdy-mesher 就是一个能够帮助我们进行...

    5 年前
  • 前端教程:使用 Contour-ORM 作为 npm 包

    什么是 Contour-ORM? Contour-ORM 是一个基于 JavaScript 的 ORM(对象关系映射) 库,它可以让开发者简单地与数据库进行交互。它建立在顶级 ORM 库 Sequel...

    5 年前
  • npm 包 connect-request-logger-pg 使用教程

    在前端开发中,我们常常需要 log 信息来进行调试和分析。在 Node.js 中,我们通常使用 console.log() 来输出 log 信息。但是,在生产环境下使用 console.log 并不安...

    5 年前
  • npm 包 @visionagency/feathers-plus-graphql 使用教程

    简介 @visionagency/feathers-plus-graphql 是一个基于 Feathers.js 和 graphql-yoga 的 npm 包,用于在前端项目中快速集成 GraphQL...

    5 年前
  • npm 包 @repetere/node-redshift 使用教程

    前言 在前端的开发过程中,我们经常需要读取和写入数据库的数据,而使用 SQL 是非常常见的实现方式。在 node.js 环境下,我们可以使用 node-postgres 等库来连接 PostgreSQ...

    5 年前
  • npm 包 @keleran/orm 使用教程

    什么是 @keleran/orm? @keleran/orm 是一款适用于前端应用的对象关系映射框架。 安装 @keleran/orm --- ------- ------------如何使用 @ke...

    5 年前
  • npm包@feathers-plus/graphql使用教程

    简介 @feathers-plus/graphql是一个基于GraphQL技术的FeathersJS框架的npm包,它可以让开发人员更加便捷地实现GraphQL API的部署和后端接口的编写,非常适合...

    5 年前
  • npm 包 @envage/hapi-pg-rest-api 使用教程

    在 Web 开发中,前端前端工程师不可避免地需要与后端接口进行数据交互。为了方便地开发和管理后端接口,我们通常会使用一个称为“RESTful API”的规范。而在 Node.js 中,我们可以通过 h...

    5 年前
  • NPM 包 code-templates 使用教程

    在前端开发中,我们常常需要使用到重复性高的代码块。为了提高工作效率,我们可以使用 NPM 包 code-templates 来创建自定义代码模板。本文将详细介绍 code-templates 的使用方...

    5 年前
  • npm 包 clay-sequelize 使用教程

    前言 在 Node.js 应用的开发过程中,很多时候需要使用到数据库。使用 Node.js 操作数据库的方式很多,如使用原生的 Node.js 模块来操作数据库、使用 ORM (Object Rela...

    5 年前
  • npm 包 baucis 使用教程

    什么是 baucis Baucis 是一个基于 Express 的自动 RESTful API 生成器,它的作用是帮助开发者自动化地生成处理 RESTful API 的代码和逻辑。

    5 年前

相关推荐

    暂无文章