NPM 包 Broccoli-emblem-compiler-rails 使用教程

前言

前端开发用到的模板引擎很多,Ember.js 就用了 Handlebars.js,但是 Handlebars.js 只提供了模板渲染一部分的功能,如果要使用组件的话,需要用到其子模板库 Emblem.js(Ember+crammed+HTML),而 Broccoli Emmblem Compiler Rails 可以将子模板库 Emblem.js 编译成模板可用的 Handlebars.js,从而提供更好的在前端使用子模板库 Emblem.js 的工具。

环境准备

  • Node.js 环境
  • 使用 broccoli.js 搭建的前端项目

安装

使用 NPM 安装 broccoli-emblem-compiler-rails:

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

使用

在使用 Broccoli 的 Brocfile.js 中配置插件,并且设置编译后的 Handlebars.js 文件输出路径:

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

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

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

以上配置在编译时会将 app/assets/javascripts 目录下后缀名为 .emblem 的文件全部编译成 output/javascripts/templates.js

接下来在前端代码中引入编译后的 Handlebars.js 文件,并且使用预编译好的模板(这里示意一下):

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

这里要注意的是,模板文件的命名必须符合 controller/view 这样的命名规范,即 app/views/example.emblem 会预编译成 JST['app/views/example'],并且编译后的 Handlebars 模板函数会放到 window.JST 全局对象下。如果使用了 ember-cli 的话会自动帮我们处理好这些。

拓展

如果需要支持多个目录或者多个目录下的文件有不同的输出文件名的话,可以将 Broccoli 插件包装一下,下面是一个简单的示例:

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

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

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

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

这样配置之后,即可支持多个目录下的 .emblem 文件编译成多个不同的 Handlebars.js 文件了。

结语

相信通过本文的介绍,大家已经可以轻松使用 Broccoli-emblem-compiler-rails 编译自己的子模板库了!而且对于对 Broccoli 和其它编译工具熟悉的同学还可以进行更多的拓展,增强项目的构建过程。

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


猜你喜欢

  • npm 包 broccoli-empty-dirs 使用教程

    背景 在前端开发中,我们经常使用构建工具来处理静态资源。有时候我们需要清空一些目录,比如在打包前清空 dist 目录。但是在使用某些构建工具时,由于一些目录是空目录,这些工具无法识别并清空这些目录。

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

    前言 在现代前端开发中,使用自动化构建工具十分常见。而构建工具的核心是插件和模块库,便于开发人员快速搭建环境。而其中一个非常重要的模块就是文件过滤模块(File Filter)。

    4 年前
  • npm 包 `broccoli-es-dependency-graph` 使用教程

    前言 在前端开发中,我们经常会用到 ES6 的模块化特性,在 webpack、rollup 等打包工具下进行代码构建时,都需要构建一个模块依赖关系图。然而,在某些场景下,我们希望对代码进行技术分析和故...

    4 年前
  • npm 包 browser-device-js 使用教程

    前言 随着移动设备和 PC 设备的日益普及,我们需要在前端开发中更加注重设备适配的问题。而 browser-device-js 就是一款可以帮助我们解决设备适配的 npm 包,本文就为大家提供详细使用...

    4 年前
  • npm 包 browser-driver 使用教程

    前言 在前端开发中,我们经常需要进行网页测试或者自动化测试,而这些工作需要一个无界面浏览器来完成。这时候,我们可以使用基于 Node.js 的 browser-driver npm 包来完成这个工作...

    4 年前
  • npm 包: browser-downloader 使用教程

    在 Web 开发中,我们有时需要下载文件来完成某些操作。browser-downloader 是一个 Node.js 包,它提供了一个简单的方式来下载文件,并支持浏览器端调用。

    4 年前
  • npm 包 browser-ear-trainer 使用教程

    介绍 browser-ear-trainer 是一个轻量级的 web 应用程序,可以用于培养听力对音调和间隔的感知能力。它使用 Web Audio API 实现音频播放和处理功能,可通过 npm 包安...

    4 年前
  • npm 包 browserify-configify 使用教程

    Browserify 是一个将 Node.js 模块打包为浏览器可用的文件的工具。而 configify 是一个管理应用程序常量、配置值的库。browserify-configify 则是将两者结合起...

    4 年前
  • npm 包 browserify-cord 使用教程

    前言 随着前端开发日趋复杂,我们经常需要使用各种 npm 包来帮助我们完成开发工作。而本文要介绍的 npm 包 browserify-cord 即是一款帮助我们在前端使用 Cordova 插件的工具。

    4 年前
  • npm 包 browserify-cortex 使用教程

    介绍 browserify-cortex 是一个用于构建前端项目的 npm 包,它可以将 node.js 模块打包为浏览器端可用的模块,并自动处理模块依赖关系。使用 browserify-cortex...

    4 年前
  • npm 包 bs-injular 使用教程

    在前端开发中,我们经常需要进行页面的渲染和组件的管理。为了方便地进行这些操作,我们可以使用一些 npm 包。其中,bs-injular 是一款非常优秀的 npm 包,它可以帮助我们进行依赖注入和组件渲...

    4 年前
  • npm 包 bs-jsverify 使用教程

    概述 在前端开发中,我们经常需要进行数据校验和单元测试。bs-jsverify 是一个基于 JavaScript 的测试框架,它可以帮助我们快速地生成各种数据类型并进行数据校验。

    4 年前
  • npm 包 bs-lightbox 使用教程

    在前端开发中,经常会涉及到图片展示的需求。bs-lightbox 就是一个轻量级的图片弹窗插件,能够实现图片缩放、旋转、滑动查看等功能。本文将详细介绍 bs-lightbox 的使用方法。

    4 年前
  • npm 包 browserify-count-modules 使用教程

    前言 在前端项目的开发中,我们会使用大量的第三方库或框架,这些库或框架可能会包含多个模块或组件,为了更好地了解项目的结构和优化打包,我们需要知道项目中有哪些模块或组件,并统计它们的数量。

    4 年前
  • npm 包 browserify-css-filter 使用教程

    随着前端技术的不断发展和进步,我们在开发和构建 Web 应用程序时,常常需要使用一些工具和技术来帮助我们加快开发效率、提升代码质量、简化开发流程等等。其中,npm 包是我们常用的一个工具,它可以让我们...

    4 年前
  • npm 包 browserify-cssx 使用教程

    前言 在前端开发过程中,我们经常需要使用一些 CSS 预处理器来编写样式,如编译 Sass 或 Less。然而,浏览器并不支持直接引用这些预处理器语言的代码,因此我们需要使用工具将它们转换为浏览器兼容...

    4 年前
  • npm 包 browser-es6-map 使用教程

    前言 在前端开发中,经常需要使用数据进行操作和计算。而 JavaScript 中的数据结构种类还是比较有限的。ES6 中新增了一种 Map 数据结构,可以方便地存储键值对,并提供了很多有用的操作方法。

    4 年前
  • npm 包 browser-es6 使用教程

    在前端开发中,我们经常需要使用 ECMAScript 6 (ES6) 的新特性来提高代码的质量和效率。但是,由于不同浏览器对 ES6 的支持程度不同,我们必须使用 babel 等工具将 ES6 转换为...

    4 年前
  • npm 包 browser-event-adder 使用教程

    在前端开发中,我们经常需要为网页添加各种事件处理函数。但是,不同浏览器之间实现上的差异和版本更新经常会给我们带来麻烦。为了解决这个问题,我们可以使用 npm 包 browser-event-adder...

    4 年前
  • npm 包 browser-event-debugger 使用教程

    在前端开发中,经常会遇到需要监听用户操作的需求,例如鼠标点击、键盘输入等事件。在开发过程中,有时候这些事件可能存在问题,比如事件不触发、事件触发时传递的参数不正确等。

    4 年前

相关推荐

    暂无文章