npm 包 @ryo_suga/babel-preset-ryosuga 使用教程

前言

在 JavaScript 开发过程中,我们经常会用到 Babel 进行代码转换。Babel 是一个能够将 ES6+ 代码转换成浏览器或 Node.js 可以运行的 JavaScript 代码的工具。Babel 官方提供了很多 Preset,但是它们并不是一定满足我们的需求。这时候我们就需要自己编写一个 Preset 来满足我们的需求。本篇文章介绍了 @ryo_suga/babel-preset-ryosuga 这个 Preset 的使用方法。

@ryo_suga/babel-preset-ryosuga

@ryo_suga/babel-preset-ryosuga 是一个由 Ryo Suga 开发的 Babel Preset。它包含了以下插件:

  • @babel/plugin-proposal-class-properties
  • @babel/plugin-proposal-decorators
  • @babel/plugin-proposal-nullish-coalescing-operator
  • @babel/plugin-proposal-optional-chaining
  • @babel/plugin-transform-runtime

安装

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

使用

在项目根目录下新建一个.babelrc文件,在文件中添加以下内容:

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

插件介绍

@babel/plugin-proposal-class-properties

Class 属性提案是 ECMAScript 2019 中的一部分。这个提案允许我们直接在 Class 定义里面声明属性。

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

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

这个插件使得我们可以在浏览器或 Node.js 运行一些新的语法。实际开发中,我们广泛使用这个新的语法。

@babel/plugin-proposal-decorators

装饰器提案是 ECMAScript 2016 的一部分。它提供了一种方式来将代码和元数据关联起来。使用装饰器的一个应用场景是将 Class 转化为 Store,方便 State 管理。

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

@babel/plugin-proposal-nullish-coalescing-operator

Nullish Coalescing Operator 是 ECMAScript 2020 提出的一个新的操作符。它提供了一种简单的方法来检查一个值是否 null 或 undefined。

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

与|(或)操作符进行比较,?? 操作符只在值为 null 或者 undefined 时返回。

@babel/plugin-proposal-optional-chaining

Optional Chaining 是 ECMAScript 2020 提出的一个新的操作符。它提供了一种简单的方式来检查一个对象的属性是否存在,如果存在则返回属性,如果不存在返回 undefined。

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

@babel/plugin-transform-runtime

使用 Babel 转换 ES6+ 代码时,会将新的语法转化为 Polyfill 或者重复的代码。 @babel/plugin-transform-runtime 可以在代码中注入帮助函数(例如 _classCallCheck)以及其他运行时代码。它提供了一种轻量化的方式来使用这些功能,而不需要重复引入每个支持的新功能的 Polyfill。

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

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

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

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

示例代码

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

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

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

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

经过 Babel 的处理,main.js 转换为以下代码:

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

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

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

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

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

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

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

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

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

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

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

结论

在本文中,我们学习了 @ryo_suga/babel-preset-ryosuga 这个 Babel Preset,并了解了它包含的插件以及在实际开发中的应用场景。我们可以看到它可以为我们的项目提供很多有用的功能,同时它的使用也非常简单。我们期待更多的人使用它并为它做出贡献。

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


猜你喜欢

  • npm 包 generator-typescript-library-boilerplate 使用教程

    介绍 在前端开发中,开发一个 TypeScript 库是非常常见的需求。然而,在创建 TypeScript 库时,我们还需要编写一些固定的代码,如测试框架、Rollup 配置以及一个常用的 READM...

    2 年前
  • npm包prismjs-papandreou使用教程

    前言 在前端开发中,我们经常需要将代码高亮显示,以便于用户的阅读和理解。而 Prism.js 便是一款开源、轻量级的代码语法高亮库。 在 Prism.js 的基础上,Pavlos Papandreou...

    2 年前
  • npm 包 simple-console-color 使用教程

    在前端开发中,我们常常需要在控制台中输出一些信息,而很多时候信息可能比较多,导致输出内容不易阅读。为了提高信息的可读性,我们可以使用 simple-console-color 这个 npm 包,给控制...

    2 年前
  • npm 包 grunt-ml-sync 使用教程

    在前端开发过程中,我们经常需要处理多语言的问题。不同的网站和应用程序需要支持不同的语言,因此我们需要一种灵活且可扩展的方式来管理这些多语言资源。在这篇文章中,我们将介绍如何使用 npm 包 grunt...

    2 年前
  • npm 包 skype-undelete-bot 使用教程

    前言 在使用 Skype 进行日常交流时,我们可能会在不经意间误删了一些重要的聊天记录。当我们意识到这一点时,我们很可能会感到焦虑和困惑,不知道该如何找回被误删的聊天记录。

    2 年前
  • npm 包 oys-cli 使用教程

    简介 oys-cli 是一个针对前端项目的脚手架工具。通过 oys-cli 可以快速创建一个基于 React、Vue、Angular 等框架的项目模板。同时,oys-cli 还提供了自动化构建和打包等...

    2 年前
  • npm 包 two-way-binding 使用教程

    two-way-binding 是一款方便实现数据双向绑定的 npm 包。双向绑定能够轻松地让数据从组件的属性流到视图,也能够轻松地让改变视图中的值时对组件属性进行实时更新。

    2 年前
  • npm 包 postcss-flextype 使用教程

    在前端开发过程中,我们经常面临调整字体大小的问题。通常情况下,我们使用 CSS 的 font-size 属性来控制字体大小。不过在某些情况下,我们需要对字体大小进行更细粒度的控制,例如在响应式设计中。

    2 年前
  • npm 包 tasklist-stream 使用教程

    在前端开发中,我们经常需要运行多个任务同时进行,这时候需要使用 tasklist-stream 这个 npm 包来管理任务列表。本文将会详细介绍如何使用该包来实现前端开发中多任务管理。

    2 年前
  • npm 包 @nikches/vanilla-text-mask 使用教程

    在前端开发中,文本输入框的输入内容需要格式化的场景经常出现。@nikches/vanilla-text-mask 是一个针对输入框内容格式化的 npm 包。本文将详细介绍如何使用这个包以及它的实现原理...

    2 年前
  • npm 包 create_github_commit 使用教程

    前言 当我们在开发一个应用程序,需要上传至 GitHub 平台时,我们通常会将代码推送至仓库中,并创建一个提交(commit)。但是,如果我们频繁地进行开发,就需要频繁地执行推送和提交操作,这样会很麻...

    2 年前
  • npm 包 hyperterm-dark-fusion 使用教程

    前言 在前端开发的过程中,不仅需要熟练使用常见的开发工具和技术,还要不断地去寻找和运用优秀的 npm 包来提高开发效率和代码质量。本文介绍了一款名为 hyperterm-dark-fusion 的 n...

    2 年前
  • npm 包 immutable-redux-crud 使用教程

    简介 immutable-redux-crud 是一个基于 Redux 和 Immutable.js 的 npm 包,它提供了一种简单且可扩展的方式来处理复杂的 CRUD 应用程序。

    2 年前
  • npm 包 pragma-port 使用教程

    简介 在前端开发中,我们经常需要将 JSX 语法转换成 JS 代码。通常情况下,我们使用 Babel 工具来实现这个功能。然而,在某些情况下,我们不想为了一个简单的转换操作而去引入 Babel。

    2 年前
  • npm 包 react-native-stacktrace 使用教程

    简介 react-native-stacktrace 是一个 React Native 应用程序的调试工具,它可以帮助开发者快速定位应用程序中的异常错误,并提供详细的调用堆栈信息以及代码行数等相关信息...

    2 年前
  • immutable-redux-relationships 使用教程

    如果你正在开发 React 应用并使用 Redux 进行状态管理,那么你一定知道 Redux 中 store 的设计理念是不可变的。 不可变状态的一个好处是,我们可以通过比较对象及其值是否相等来判断两...

    2 年前
  • npm 包 login-with-amazon 使用教程

    随着互联网的发展和人们需求的增加,越来越多的网站和应用开始采用第三方登录,其中包括 Amazon 的登录。为了方便开发者接入 Amazon 登录,npm 社区开发了一个名为 "login-with-a...

    2 年前
  • npm 包 sourcejs-sass 使用教程

    在前端开发中,Sass 是一种非常强大的 CSS 预处理器,在帮助我们更高效地编写 CSS 的同时,还提供了众多的有用特性。而 sourcejs-sass 则是一个在 Sass 中使用 SourceJ...

    2 年前
  • npm 包 @cross-border-bridge/data-channel 使用教程

    简介 @cross-border-bridge/data-channel 是一个开源的 npm 包,用于在前端应用和后端服务器之间实现数据传输通道。它基于 WebSocket 协议实现,支持全双工通信...

    2 年前
  • npm 包 @cross-border-bridge/data-bus 使用教程

    前言 在现代互联网应用开发中,数据通信是必不可少的核心问题。而在一个复杂场景中,数据之间的交互会变得相当棘手。尤其当涉及多个组件、多层数据传递、多个用户等时,数据流程变得更加复杂,因此我们需要一种有效...

    2 年前

相关推荐

    暂无文章