Babel 的 @babel/runtime 使用简介

概述

在前端开发中,我们常常需要编写 ES6+ 代码,但是由于许多浏览器并不支持这些新特性,所以需要使用 Babel 进行转义。而在使用 Babel 进行转义时,我们可能会遇到一些问题,比如引入了许多重复的 polyfill 代码,导致最终代码体积过大,甚至有些 polyfill 可能是我们用不上的。这时就需要使用 @babel/runtime 进行优化。

安装

使用 @babel/runtime 非常简单,只需要在项目中安装即可:

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

然后在 .babelrc 文件中添加以下配置即可:

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

其中,@babel/preset-env 主要用于将 ES6+ 代码转义为浏览器可以支持的 ES5 代码。而 @babel/plugin-transform-runtime 则替换了 Babel 自带的 helpers 和 polyfills,从 @babel/runtime 中引入,从而避免了重复打包。

使用

在项目中,我们可以使用两种方式引入 @babel/runtime。

一、全局引入

在项目入口文件中直接引入即可:

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

这样做的好处是可以省去每个文件中都引入一遍的步骤,但同时也会带来一些问题,比如 @babel/runtime 中的模块会和 webpack 打出的模块重复,导致最终代码体积过大。

二、局部引入

我们可以在需要引入的文件中按需引入 @babel/runtime,从而避免不必要的代码:

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

在以上代码中,我们只引入了 @babel/runtime 中 Promise 的相关代码,从而避免了其他无用代码的打包。可以看出,局部引入的方式更加精细化。

效果

使用 @babel/runtime 可以有效减小代码体积,提升代码加载速度。以下是使用前后的代码体积对比:

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

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

可以看出,使用 @babel/runtime 后,项目代码体积减小了约 8 KB,而打包出的 vendors.js 体积也减小了约 20 KB,优化效果非常显著。

总结

@babel/runtime 的使用可以帮助我们更加高效的开发和优化项目,减小代码体积,提升页面加载速度。在实际项目中,我们应该根据实际情况使用全局引入或局部引入的方式,避免不必要的代码打包,从而提升代码运行效率。

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


猜你喜欢

  • 如何在 CSS Grid 布局中使用 grid-template-rows

    CSS Grid 布局(CSS Grid)是一种强大的布局系统,使得我们可以以一种更加灵活、自然的方式来设计网页布局。在 CSS Grid 中,我们可以使用 grid-template-rows 属性...

    5 个月前
  • 在 Mocha 中如何测试 WebSocket 连接?

    WebSocket 是一种基于 TCP 的协议,它使得 Web 应用程序可以进行双向通信。在前端开发中,我们经常会使用 WebSocket 来实现实时数据交互和推送。

    5 个月前
  • Kubernetes 中的 autoscaling 的最佳实践

    Kubernetes 中的 autoscaling 是指根据应用负载情况自动扩展或缩小应用资源。通过 autoscaling,我们可以确保应用能够始终保持在最佳状态,既能满足高峰时期的负载需求,也能避...

    5 个月前
  • 使用 Apollo Client 进行 GraphQL 性能监控

    使用 Apollo Client 进行 GraphQL 性能监控 GraphQL 是一种流行的 API 查询语言,它具有很多优点,例如更好的数据请求粒度控制、更少的网络延时和更好的代码可维护性。

    5 个月前
  • Chai 测试框架之使用 Spy 进行工程测试

    在前端开发中,测试是一个非常重要的部分。而 Chai 是一个常用的测试框架,它可以方便地实现各种测试需求。在 Chai 中,Spy 是一个非常有用的功能,可以用来监控函数的调用情况,以及参数等信息。

    5 个月前
  • Jest 测试 Vue 应用的最佳实践

    在日常前端开发中,我们经常需要进行单元测试和集成测试,以保证代码的质量和稳定性。而 Vue.js 作为一款流行的前端框架,也有其专门的测试工具 Jest,可以帮助我们快速地完成单元测试和集成测试。

    5 个月前
  • Redux 中间件派发的异步 Action 详解

    Redux 是一种用于 JavaScript 应用程序的可预测状态容器。 它为您的应用程序提供可预测性,可维护性和可调试性。 Redux 具有许多插件和中间件,可以使开发过程变得更容易。

    5 个月前
  • ECMAScript 2018 新特性:Rest/Spread 属性提案

    随着前端技术的发展,JavaScript 语言一直在不断进化。ECMAScript 2018 版本中引入了 Rest/Spread 属性提案,为开发者提供了更加便捷高效的编程方式。

    5 个月前
  • 如何在 CSS Grid 布局中使用 grid-template-areas

    CSS Grid 布局是一种强大的 CSS 特性,它可以轻松地实现复杂的网格布局。其中,grid-template-areas 属性是一个非常有用的工具,它可以让我们用一种更加直观、易于理解的方式来对...

    5 个月前
  • Deno 中如何操作 WebRTC 实现视频通讯

    WebRTC 是一个开放的框架,可以在不需要插件的情况下,实现浏览器之间的实时音视频通讯。而 Deno 是一个 JavaScript 和 TypeScript 运行时环境,用于开发服务器端应用程序。

    5 个月前
  • 如何解决响应式设计下图文混排的字体无法垂直居中问题

    在响应式设计中,图文混排是经常出现的情况。但是在一些情况下,文字无法与图片垂直居中,特别是在响应式设计下。这是因为浏览器不能很好的计算行高和图片高度之间的差距,这就导致了无法垂直居中。

    5 个月前
  • SASS 中的 @while 循环详解及使用技巧

    在前端开发中,CSS 是我们离不开的技术,而 SASS 则是 CSS 的一种预处理语言。SASS 不仅可以简化我们的代码,还可以让我们更方便地管理样式。在 SASS 中,我们可以使用 @while 循...

    5 个月前
  • 使用 PM2 监控 Mongodb 进程

    在日常开发中,出现 MongoDB 进程异常退出的情况时是经常遇到的。因此,了解如何使用 PM2 这一进程管理器对 MongoDB 进程进行监控是非常必要的。本文将为大家详细介绍如何使用 PM2 监控...

    5 个月前
  • Headless CMS 的发展历程 从 web-based CMS 到 API-first CMS

    随着互联网和移动设备的普及,越来越多的企业需要构建跨平台的数字产品,例如网站、APP、微信小程序等等。然而,这些数字产品通常需要通过多个渠道进行展示,传统的 web-based CMS 已经无法满足需...

    5 个月前
  • Jest 测试 React 组件时的常见错误解决方法

    在前端领域中,测试是非常重要的一环。其中针对 React 组件的测试, Jest 作为一款测试框架,受到了广泛的使用。但是在实际的测试过程中,很难避免出现一些常见的错误。

    5 个月前
  • Mocha 测试框架结合 Istanbul 使用技巧

    Mocha 测试框架结合 Istanbul 使用技巧 前言 在开发前端项目时,我们经常需要使用自动化测试工具来确保我们的代码能够正常运行。在测试工具中,Mocha 是一个流行的单元测试框架。

    5 个月前
  • Kubernetes 中使用 Restful API 进行操作

    在 Kubernetes 中,可以使用 Restful API 进行各种操作,包括创建、删除、更新和查询资源对象等。本文将深入介绍 Kubernetes 中使用 Restful API 进行操作的方法...

    5 个月前
  • JavaScript 原始类型中的 float 和 double 类型

    在 JavaScript 中,数字是一种使用非常广泛的数据类型,它们可以表示整数和浮点数。但是,很多人可能不太了解 JavaScript 中的浮点数是如何表示和存储的。

    5 个月前
  • SASS 中的 @debug 指令调试技巧

    SASS 中的 @debug 指令调试技巧 前言 在前端开发中,样式代码的开发也是占有重要的位置。但是当我们的代码量达到一定的规模时,样式代码的调试变得愈发困难。本文将介绍 SASS 中的 @debu...

    5 个月前
  • 在 Webpack 构建项目中使用 ESLint 找出并纠正代码错误

    随着前端项目的日益复杂,由于开发人员的个人习惯,代码风格、代码规范等问题逐渐显现。为了解决这些问题,我们可以使用工具对代码进行规范检测。本文将介绍如何在 Webpack 构建项目中使用 ESLint ...

    5 个月前

相关推荐

    暂无文章