npm 包 broccoli-bem 使用教程

随着前端开发的发展,CSS methodologies(CSS 风格指导思想)变得越来越重要,它们可以使我们的 CSS 代码更加规范、易于维护和可扩展。BEM 是其中一种广受欢迎的风格指导方法,通常被用于大型 Web 项目开发。在这篇文章中,我们将介绍如何使用 npm 包 broccoli-bem 来实现 BEM 风格的开发和构建工具。

什么是 BEM?

BEM 是 Block、Element、Modifier 的缩写,是一种构建易于维护和扩展的 Web 界面的方法。每个 “块”(block)都是由 CSS 类名为 .block-name 的元素组成的,而每个 “元素”(element)都是属于某个块内的元素,其类名类似于 .block-name__element-name,最后,每个 “修饰符”(modifier)都是描述某个块或元素的状态或变化的类名,例如 .block-name__element-name--modifier

以下是一个简单的示例,BEM 的类命名约定是用横线命名法。

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

什么是 broccoli-bem ?

broccoli-bem 是一个 npm 包,它为 BEM 风格的代码提供了自动化构建工具。它基于 broccoli 构建工具,是一种静态文件生成器,旨在使您的前端项目能够更加可维护,更加灵活。

使用 broccoli-bem 构建你的 BEM 项目

首先,确保您已经安装了 node.js 和 npm。

  1. 创建一个新的 node.js 项目并在其根目录中运行以下命令,安装 broccoli-bem:

    --- ------- ------------ ----------
  2. 在根目录下创建一个名为 Brocfile.js 的文件,并输入以下代码:

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

    您需要创建一个 src 文件夹用于存储您的项目源代码,这个文件夹包含您的 BEM 样式和其他前端资源(如 JavaScript 和图像)。

    在上面的代码中,我们使用 bemBuilder 函数创建了一个名为 tree 的 broccoli 树,该树允许我们在 src 目录的 BEM 文件中引用块,元素和修饰符。我们还将一个 JSON 文件 blocks.json 传递给 bemBuilder 函数,它包含了我们在 BEM 文件中使用的所有的类名和结构信息。

    以下是 blocks.json 的常规格式:

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

    下一步,我们需要告诉 broccoli-bem 如何将 BEM 文件转换为 CSS 文件,可以将以下内容添加到 Brocfile.js 中:

    --- ---------- - --- ----------------
       -----
       ------  -- ------ ---------
       --------------------  -- ------ ---------
    --
  3. 运行 broccoli serve 命令来启动一个 web 服务器,通过 http://localhost:4200/ 访问您的 BEM 项目。

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

    现在,您的 broccoli-bem 项目已经成功启动,该项目将自动生成您的 CSS 文件并将其输出到您的目标目录中。

示例代码

以下是一个示例 BEM 文件的目录结构:

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

在这个例子中,我们创建了一个名为 block 的 BEM 块。这个块由 block.cssblock.html_block.css 和一个名为 element 的 BEM 元素组成。元素 element 又由一个 _element.css 和一个 _element.html 组成。我们还创建了一个 blocks.json 文件,它描述了我们在 BEM 文件中使用的所有类名和结构信息。

以下是 blocks.jsonblock 的段落:

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

现在,block.css 中定义了 block 的样式:

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

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

index.html 包含了 block 的 HTML 代码:

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

最后,brocfile.js

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

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

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

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

启动该项目:

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

现在我们在浏览器中打开 http://localhost:4200 ,应该可以看到我们的 block 块已经成功应用,block 的 HTML 代码被呈现为一块黑色边框和蓝色背景的方块。

结论

在这篇文章中,我们介绍了 BEM 风格指导思想的基础知识,并了解了如何使用 npm 包 broccoli-bem 来构建 BEM 风格的 Web 项目。我们还提供了一个示例代码,以帮助您了解如何实现和使用 broccoli-bem。请记住,BEM 可以使您的代码更容易维护和扩展,broccoli-bem 则是实现 BEM 的一个很好的工具,它可以帮助您更有效地开发代码。

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


猜你喜欢

  • npm 包 brownie 使用教程

    在前端开发中,我们常常需要使用各种各样的工具和框架来简化代码的开发和维护流程,其中,npm 包是我们经常需要使用的一种工具。而在 npm 包中,brownie 又是一个非常实用的包,它提供了一系列的工...

    4 年前
  • npm 包 browserbots 使用教程

    在前端开发中,我们经常需要进行自动化测试,而 browserbots 是一款优秀的前端自动化测试工具。本文将对 browserbots 的使用进行详细介绍。 什么是 browserbots? brow...

    4 年前
  • npm 包 broccoli-cjs-wrap 使用教程

    前言 在前端开发中,我们经常需要使用构建工具来管理和打包我们的代码。而 Broccoli 作为一个基于流的构建工具,越来越受到前端开发者的青睐。在 Broccoli 中,使用 broccoli-cjs...

    4 年前
  • npm 包 broccoli-cjsx 使用教程

    在前端开发中,我们常常需要使用构建工具来自动化任务并提升开发效率,常用的构建工具包括 webpack、gulp、grunt 等等。而 broccoli-cjsx 是一个基于 Broccoli 的插件,...

    4 年前
  • npm 包 BrowserDJ 使用教程

    在 Web 开发中,许多开发者都需要使用音频控制库来给网站嵌入音频播放器。BrowserDJ 是一个高度定制化的音频控制库,它允许你自由控制音频的播放、暂停、音量和音频跳转等功能。

    4 年前
  • npm 包 browscope 使用教程

    前言 在日常的前端开发工作中,我们经常需要对项目进行性能优化,而对于性能优化来说,网页加载速度是一个非常重要的指标。要想了解一个网站的加载性能,我们往往需要用到前端性能分析工具。

    4 年前
  • npm 包 browserify 使用教程

    1. 前言 在开发前端项目时,我们通常需要在浏览器中加载和使用多个 JavaScript 文件。但是,浏览器只支持加载单个 JavaScript 文件,这就使得我们无法有效的组织和管理前端代码,而使用...

    4 年前
  • npm 包 browseify 使用教程

    在前端开发过程中,有时候我们需要使用一些 Node.js 包来实现我们所需的功能,然而有些包在浏览器环境下并不能直接使用,这时候就需要用到 npm 包 browseify。

    4 年前
  • npm 包 broccoli-cashay-schema 使用教程

    在前端开发中,有很多工具和库可以帮助我们提高开发效率和编写更高质量的代码。其中,npm 包是非常流行的一种工具,可以让我们更方便地管理和使用第三方的 JavaScript 库和框架。

    4 年前
  • npm 包 broccoli-cdnizer 使用教程

    简介 broccoli-cdnizer 是一款基于 broccoli 的插件,用于将你的前端资源路径转换为 CDN 路径,以便更快地加载资源,提高页面性能。 安装 在使用 broccoli-cdniz...

    4 年前
  • npm 包 broccoli-cldr-data 使用教程

    在前端开发中,国际化是一个非常重要的方面,其中一个不可少的部分是使用 CLDR 数据。而在 Node.js 项目中,有一个方便的工具包 broccoli-cldr-data 可以使用。

    4 年前
  • npm 包 broccoli-clext 使用教程

    前言 Broccoli-clext 是一个非常实用的 npm 包,它是 Broccoli 框架的插件,可用于对前端代码进行构建优化。 在前端开发领域,构建工作是必不可少的一环,优化构建工作能够减小代码...

    4 年前
  • npm 包 brute-rethinkdb 使用教程

    前言 rethinkdb 是一款 NoSQL 数据库,在前端中使用的场景主要是在实时通信中使用。而 brute-rethinkdb,则是一个 npm 包,封装了 RethinkDB 链接池、数据插入、...

    4 年前
  • npm 包 bruteforce 使用教程

    简介 Bruteforce 是一个基于 JavaScript 的 npm 包,主要用于在浏览器环境中实现暴力破解算法,通常用于网络安全测试等场景。它提供了多种算法和选项,可以快速进行密码破解、爆破等操...

    4 年前
  • npm 包 brutime 使用教程

    简介 brutime 是一个用于在前端生成表单验证规则的 npm 包。它提供了一种简单的方式来检测表单输入是否符合特定的规则。通过使用这个包,您可以轻松地对表单进行验证,而不必花费太多的时间编写代码。

    4 年前
  • npm 包 brutime-cli 使用教程

    引言 在前端进行开发的过程中,我们经常需要处理时间和日期。brutime-cli 是一个基于 Node.js 的命令行工具,可以简单快捷地进行时间和日期的转换和操作。

    4 年前
  • npm 包 brutto 使用教程

    如果你正在寻找一款能够对文件大小进行压缩的 npm 包,那么可以尝试一下 brutto。brutto 是一款基于 gzip 的 npm 包,能够将文件大小压缩至最小,且使用非常简单。

    4 年前
  • 多个字段在查询参数中重复使用同一个键名(axios请求)?

    当我们向后端发送HTTP请求时,常常需要通过查询字符串将一些信息传递给服务器。查询字符串是一种在URL中传递数据的方式,它由问号和键值对组成,例如:https://example.com/search...

    4 年前
  • npm 包 brutus 使用教程

    前言 在前端开发过程中,经常需要生成随机的字符串、数字等数据。而手动编写生成规则既费时又容易出错。这时,npm 包 brutus 就提供了一种快速生成随机字符串的方式。

    4 年前
  • npm 包 brw 使用教程

    什么是 brw? brw 是一款基于 Node.js 的 HTTP 代理服务器工具,它能够将请求流量重定向至指定的目标服务器,并且支持一定的流量拦截与转发。通过使用 brw,前端工程师可以快速搭建自己...

    4 年前

相关推荐

    暂无文章