npm 包 @babel/plugin-external-helpers 使用教程

阅读时长 9 分钟读完

简介

在前端开发过程中,我们会使用到很多类库和插件进行开发,而 Babel 就是其中一个不可或缺的工具。Babel 的核心作用是将 ES6+ 语法转换成 ES5 语法,以兼容目前大部分浏览器。@babel/plugin-external-helpers 是 Babel 插件之一,其主要作用是将 Babel 在编译过程中产生的 helpers 抽离出来,减少重复代码。

安装

在使用 @babel/plugin-external-helpers 插件之前,需要确保在项目中安装了 Babel。如果尚未安装 Babel,可以使用以下命令进行安装:

安装完 Babel 后,接下来可以安装 @babel/plugin-external-helpers 插件:

使用

在安装完 @babel/plugin-external-helpers 插件后,需要在 Babel 的配置文件中进行配置。Babel 的配置文件默认为 babel.config.js,在该文件中添加如下配置:

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

在配置文件中,我们将 @babel/plugin-external-helpers 插件添加到了 plugins 数组中。通过该插件,我们可以将 Babel 在编译过程中产生的 helpers 抽离出来,将其提供给 addExternalHelpers 方法,即可实现减少代码重复的效果。

示例

下面是一个简单的示例,展示如何在 Babel 中使用 @babel/plugin-external-helpers 插件:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

编译后的 ES5 代码中,Babel 产生了很多 helpers 代码,这增加了代码的体积。如果在多处使用类似 Foo 类似的代码,每次都产生相同的 helpers 代码,将导致代码重复。通过使用 @babel/plugin-external-helpers 插件,可以将 helpers 代码提取出来,减少代码冗余,如下所示:

这样代码输出的 ES5 代码中就仅包含了 addExternalHelpers() 方法,而没有包含 Babel 产生的 helpers 代码,减少了代码的体积。

总结

本文介绍了 Babel 插件之一 @babel/plugin-external-helpers 的使用教程,了解了该插件的用法,能够将代码中的 helpers 提取出来,减少冗余代码。如果您还不太熟悉 Babel 的使用,可以通过本文了解 Babel 的使用。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/110319