Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@bcronin/rbuild

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bcronin/rbuild

A `make`-like tool with a few additional conventions and conveniences.

  • 0.1.1
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
3
increased by50%
Maintainers
1
Weekly downloads
 
Created
Source

rbuild

A make-like tool with a few additional conventions and conveniences.

Example

build.task("tbd")

Command-line Usage

  • -w, --watch - runs in watch mode: will run the given task then poll all the dependent files and rerun the top-level task whenever
  • -f, --force - ignores timestamps and forces all tasks to be run. When combined with the watch option, the force option only applies to the first run of the tasks
  • -h, --help - describes the tasks
  • -d, --describe, - outputs a detailed JSON dependency graph

rbuild.config.js

The configuration file has the following properties:

  • Interpreted as ES6 JavaScript
  • The build variable is exposed as a global
  • The environment variables are exposed as the map ENV

API

Builds are described in a file named rbuild.config.js. This exports two special variables build and ENV. It is also compiled as ES6 Javascript.

build

  • task(name) - create a new named task
  • include(directory) - add in the tasks and commands from another rbuild.config
  • addCmd(name, { desc }) - add a custom named command

Task

  • describe(msg) - give the task a brief description
  • deps([ dependencies ]) - ordered list of dependencies of this task
  • watch([ dependencies ]) - dependencies that should retrigger this task in watch mode
  • shell(command) - run the command string via the shell
  • exec(process, [ args ], { options }) - run an executable outside the shell
  • cmd(name, ...) - run a command registered with addCmd

task(name)

Create a new named task.

build.task("test")

describe(msg)

build.task("test")
    .describe("runs all the unit tests")
    .shell("npm run test")

deps(deps)

build.task("test")
    .describe("runs all the unit tests")
    .deps([ "build", "lint" ])
    .shell("npm run test")

shell(command)

Runs a command or array of commands as bash scripts. rbuild will go out of its way to try to run these commands with bash (e.g. using MinGW on Windows).

  • shell(command)
  • shell([ commands ])
build.task("test")
    .describe("runs all the unit tests")
    .deps([ "build", "lint" ])
    .shell("npm run test")
build.task("test")
    .describe("runs all the unit tests")
    .deps([ "build", "lint" ])
    .shell([
        "npm run test-fast",
        "npm run test-slow",        
    ]);

As rbuild compiles the source files using ES6 syntax, the long-string form can be used to construct full scripts inline in the rbuild.config.js file:

build.task("<tbd>")
    .shell(`\
set -e
echo
echo Hello World
echo
gcc -c myfile.cc -o myfile.o
`)

exec(cmdName, ...args, options)

The exec command explicitly launches a new process without going through a sub-shell.

build.task("test")
    .describe("runs all the unit tests")
    .deps([ "build", "lint" ]
    .exec("go", "build", "...", { })

subtasks(arr, opts, cb(task))

Creates a new anonymous child task for each element in the array. The child task is automatically a dependency of the named parent task.

var glob = require("glob");
build.task("compile-less")
    .subtasks(glob.sync("assets/style/*.less"), (task, filename) => {
        task.shell(`lessc ${fileanme}`)
    })

FAQs

Package last updated on 10 Dec 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc