npm 包 broccoli-shell 使用教程

简介

Broccoli 是一个快速、灵活和易于扩展的前端构建工具。然而,Broccoli 并没有自带所有的必要的处理器以及操作系统上的 shell 命令。为了更方便地使用这些工具,我们可以使用 npm 包 broccoli-shell

broccoli-shell 是一个用于将 shell 命令应用于 Broccoli 生成的树的插件。使用 broccoli-shell,我们可以轻松地运行各种 shell 命令,例如用 uglify 压缩 JavaScript 文件,用 sass 编译 CSS 文件等。此外,broccoli-shell 还可以在构建时运行一些可执行文件,如 PhantomJS,从而对生成的树进行更细粒度的操作。

安装

可以通过以下命令进行安装:

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

这会将 broccoli-shell 安装到项目的开发依赖中。

使用

基本用法

使用 broccoli-shell 的基本用法与 Broccoli 的其他插件相似。我们需要在 Brocfile.js 中导入 broccoli-shell 并将其传递给 broccoli.makeTree 方法。以下是一个简单的示例:

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

在上面的例子中,我们使用了 cp 命令来将 data 目录复制到 dist 目录中。要注意的是,command 参数的值应该是一个字符串,其中包含要运行的完整 shell 命令。

配置选项

broccoli-shell 还提供了一些可选的配置选项,以便更好地控制插件的行为。以下是插件的完整配置选项:

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

下面我们将详细说明这些选项。

args

该选项是一个数组,其中包含要传递给 shell 命令的参数。例如,如果要使用 uglify 压缩 JavaScript 文件,则可以传递以下参数:

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

cwd

该选项表示 shell 命令执行时的工作目录。默认值为 '.',表示使用当前目录。

env

该选项可以通过 process.env 来传递给脚本的环境变量。例如,您可以设置以下环境变量:

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

stdin

该选项默认为 null,表示 shell 命令不需要从标准输入中读取数据。如果您需要将一个字符串写入标准输入,那么您可以设置:

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

uniqueKey

该选项是一个为命令提供唯一标识的字符串,类似于缓存键。如果您在多次运行相同的命令后想使用缓存,请设置该选项。例如:

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

cmd

该选项是一个完整的 shell 命令字符串。如果您使用该选项,则忽略 command 选项。例如:

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

outputFile

该选项可以将操作的内容写入到目标文件中(而不是在内存中返回)。例如,以下代码将通过 cat 命令将 'src/file.txt' 的输入显示在终端上,并将输出写入到 'out.txt' 文件中:

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

then

该选项是一个可选的函数,它可以返回一个 promise。如果指定该选项,则会在 shell 命令执行完毕后调用该函数,以处理所有结果。该函数必须返回一个 promise。

例如,以下代码使用 curl 下载文件,然后使用 tinypng 压缩该文件:

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

persistentOutput

该选项可以防止在内存中保留所有命令输出,并将命令输出写入指定的目标文件。如果启用了该选项,则不应在 Broccoli 构建目录中返回任何文件。

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

上面的例子将命令输出写入了 dist.log 文件中,而不是在内存中保留该输出。该文件将不会出现在 Broccoli 构建的 dist 目录中。

persistentOutputEncoding

该选项表示将命令输出写入文件时使用的编码格式。默认值为 'utf8'

stdout, stderr

这两个选项控制是否在控制台上显示 shell 命令的标准输出和标准错误输出。默认情况下,这两个选项都为 true

结论

通过 broccoli-shell,我们可以在前端构建过程中更轻松地使用 shell 命令。我们可以执行任何操作系统支持的命令,并获得更好的灵活性和性能。在您的下一个前端项目中,试试使用 broccoli-shell 来了解其方便和强大的功能!

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


猜你喜欢

  • npm 包 broccoli-source-map 使用教程

    简介 在前端开发过程中,我们经常需要对 JavaScript 和 CSS 进行压缩,以减少文件体积和加快网页加载速度。然而压缩后的代码在调试时很难定位错误,因为压缩工具会将变量名和行号等关键信息删除。

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

    介绍 broccoli-soy 是一个帮助你编写使用 Google Soy 模板的 Broccoli 插件。 在本文中,我们将探讨如何通过 npm 安装和使用 broccoli-soy 包。

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

    前言 在前端开发中,jQuery 是一个非常重要的工具。但是,在某些情况下,我们不能使用传统的HTML 页面来加载 jQuery 库。在这种情况下,我们可以使用 npm 包 browser-jquer...

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

    1. 什么是 broccoli-spelunk? broccoli-spelunk 是一个 broccoli 插件,用于检查 Broccoli 树中的节点以及它们的输入输出关系。

    4 年前
  • npm 包 briskly 使用教程

    什么是 briskly? briskly 是一个能够加速项目开发的 npm 包。它可以创建并管理多个项目模板,支持快速创建模板、样板代码映射、快速构建、开发和测试等功能。

    4 年前
  • npm 包 briskly-json 使用教程

    Briskly-json 是一个用于快速构建 JSON API 的 npm 包。它提供了一种简单的方式来定义 API,包括 URL 路径,请求方法和返回数据。在本篇文章中,我将详细介绍如何使用 bri...

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

    前端开发中,经常需要进行文件打包、压缩等操作来提高网站的加载速度。而 broccoli-splitter 是一款基于 broccoli 构建工具的 npm 包,能够帮助前端开发者优化文件的打包和加载效...

    4 年前
  • 如何解决 Permission denied @ apply2files - /usr/local/lib/node_modules/expo-cli/node_modules/extglob/lib/.DS_Store 报错?

    问题背景 在使用 expo 命令行工具时,有可能会遇到这个报错: ------ ------- ---------- ------- ---- ----------------------------...

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

    前端开发中,我们需要处理很多的图片文件,尤其是在设计图给出的时候,我们需要将一张大的图片切割成多个小的图片,并按需加载,以提高页面性能。常见的做法是使用 CSS sprite 技术,将多张图片合并成一...

    4 年前
  • npm 包 broccoli-strip-css-comments 使用教程

    前言 在前端开发中,我们经常需要对 CSS 文件进行精简、压缩等操作,以提高页面的性能。然而,在进行这些操作时,我们常常会遇到一些问题,其中一个常见的问题就是 CSS 文件中的注释。

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

    前端开发中,我们常常需要使用一些第三方的库或是框架来进行开发。随着 Javascript 的流行,npm 成为了前端开发阵营的标配工具之一。而 broccoli-strip-debug 这个 npm ...

    4 年前
  • npm 包 brisk-twitter 使用教程

    简介 在前端开发过程中,有时需要集成 Twitter 的相关功能,例如获取用户时间线、发送推文等。而 brisk-twitter 是一个基于 Twitter API 的 npm 包,提供了方便简单的调...

    4 年前
  • npm 包 briskit 使用教程

    1. 简介 briskit 是一个基于 React 的 UI 组件库,包含了按钮、表单、弹窗等常用组件。briskit 的设计理念是简单易用,提供了默认的样式和主题,用户也可以根据自己的需求进行自定义...

    4 年前
  • npm 包 brisket 使用教程

    前言 对于前端开发而言,不同的工具与框架可以大大提高开发效率。其中,npm 是 JavaScript 工具包管理器,可以帮助开发者管理依赖、打包、部署等一系列工作。

    4 年前
  • npm 包 browserless-eth-lightwallet 使用教程

    简介 browserless-eth-lightwallet 是一个轻量级的 JavaScript 库,它可以帮助你通过浏览器创建和管理以太坊钱包。这个库基于 eth-lightwallet 和 br...

    4 年前
  • npm 包 browserlib 使用教程

    browserlib 是一个能够简化在浏览器中使用 JavaScript 的库,它可以减少重新编写浏览器代码的工作量,提高了开发效率和可维护性。它提供了一个统一的接口,可以方便地在多个浏览器或环境中进...

    4 年前
  • npm 包 browserlike 使用教程

    在前端开发中,测试一个网页在各种浏览器中的兼容性是一项很重要的任务。我们往往需要在多个浏览器上分别打开测试,非常麻烦。而现在,有一个很好用的 npm 包可以让我们重构这个过程,这就是 browserl...

    4 年前
  • npm 包 browserlocale 使用教程

    介绍 在前端开发中,有时候需要获取浏览器的语言设置。这时候可以使用 navigator.language 或 navigator.userLanguage,但需要注意的是,不同浏览器之间有可能返回的值...

    4 年前
  • npm 包 browserman-client 使用教程

    在进行前端开发的过程中,我们经常需要对浏览器进行调试,以找出代码中的问题。browserman-client 是一个 npm 包,它提供了一种更加便捷的方式,让开发者可以通过命令行控制浏览器,并进行调...

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

    在前端开发中,我们常常需要测试一些 JavaScript 代码的效果,例如使用浏览器环境执行代码。此时,我们不得不打开浏览器,手动创建一个 HTML 文件,并将 JavaScript 代码插入到文档中...

    4 年前

相关推荐

    暂无文章