npm 包 babel-plugin-glamorous-displayname 使用教程

阅读时长 4 分钟读完

前言

在前端开发中,我们经常使用 CSS-in-JS 的库来管理样式,其中一个非常流行的库就是 Glamorous。Glamorous 提供了一种将样式与组件紧密结合的方式。然而,由于它的实现方式,它的组件名字默认是匿名的,而这给调试和维护带来了很大的困难。针对这个问题,babel-plugin-glamorous-displayname 应运而生,可以为 Glamorous 的组件自动生成漂亮的名称。

安装

首先,我们需要安装 babel-plugin-glamorous-displayname。

然后,在你的 .babelrc 文件中,添加 "glamorous-displayname" 到 plugins 数组中即可:

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

使用

在添加了插件之后,你就可以在你的 Glamorous 组件中查看它们的名称了。

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

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

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

然后,你可以在浏览器控制台中看到这个组件的名称。

这个组件名称是由 babel-plugin-glamorous-displayname 自动生成的,你可以通过这个名称更好地调试和排查问题。如果你在多个组件中使用了同一个定义,每个组件的名称也是不同的。

深度挖掘

babel-plugin-glamorous-displayname 的实现方式非常简单,它针对 Glamorous 函数的返回值做了一点小处理。在函数的返回值中,添加了一个 displayName 属性,这个属性的值是一个随机生成的字符串。

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

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

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

比较有意思的是,babel-plugin-glamorous-displayname 生成随机字符串的方式并不简单粗暴。它采用了自己的 id-generator 库,这个库生成的 ID 不仅是随机的,也是唯一的,并且长度固定。

总结

Glamorous 是一个非常流行的 CSS-in-JS 库,在其中自动生成漂亮的组件名称可以让我们更好的理解和维护代码。通过 babel-plugin-glamorous-displayname,我们可以很容易地实现这个功能。除此之外,它在生成随机字符串时还采用了自己的 id-generator 库,这也可以给我们一些启发:在实现一些简单功能组件时,我们可以先从细节上做起,反而可以写出更具深度和参考性的代码。

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

纠错
反馈