# sakura

> Build tool for JS files

Latest version **0.0.1** (published 2014-03-21) · MIT license · 0 weekly downloads

## Install

```sh
npm install sakura
pnpm add sakura
yarn add sakura
bun add sakura
```

Provides the command `sakura`.

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.0.1 |
| Published | 2014-03-21 |
| First published | 2014-03-21 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 7 |
| Known vulnerabilities | 0 (+13 in 3 direct dependencies) |
| Install scripts | no |
| GitHub stars | 4 |
| Author | Bobby Mathews |
| Maintainers | bnaoki |

## Links

- npm: https://www.npmjs.com/package/sakura
- Repository: https://github.com/bnaoki/sakura
- Issues: https://github.com/bnaoki/sakura/issues
- npm.io page: https://npm.io/package/sakura

## Dependencies (7)

- [backbone](https://npm.io/package/backbone.md) 1.0.x
- [execSync](https://npm.io/package/execSync.md) 0.0.x
- [optimist](https://npm.io/package/optimist.md) 0.5.x
- [uglify-js](https://npm.io/package/uglify-js.md) 2.2.x
- [handlebars](https://npm.io/package/handlebars.md) 1.0.x
- [underscore](https://npm.io/package/underscore.md) 1.4.x
- [forever-monitor](https://npm.io/package/forever-monitor.md) 1.2.x

## Recent versions

- 0.0.1 (latest) — 2014-03-21

## README

# SakuraJS
SakuraJS is a build tool that makes it easier to write modular code that will run both on the server-side (i.e. node.js) and the client-side.
**NOTE: this README is a WIP, more comprehensive documentation to come**

## Usage
```bash
npm install -g sakura
sakura -f ./sakura.json
```

### Options
-w, --watch
Watch will hang the process and rerun whenever there are changes in configured watchDir

-f, --file <file>
Path to sakura config file to run. If unspecified, defauls to CWD/sakura.json

--single-run <bud-index>
Bud index position in config. When set, sakura runs for the single corresponding bud at the 
specified index and skips all other buds.

--spin
Spins the process so that it doesn't exit. Applicable for --single-run only.

## Config file
Specify the config file using the -f option. If unspecified, sakura will look for a file named sakura.json in the current working directory.
```bash
sakura -f ./my-sakura-config-file.json
```
A sakura config file is a JSON file with a list of entries of "buds"
**Sample sakura.json config file:**
```json
{
  "buds": [
    {
      "_type": "static",
      "watchDir": "deps",
      "files": [
        "deps/dep-file1.js",
        "deps/dep-file2.js",
        "deps/dep-file3.js"
      ],
      "destFile": "build/app-deps.js",
      "minDestFile": "build/app-deps.min.js"
    },
    {
      "_type": "dynamic",
      "watchDir": "src",
      "inputs": [
        "src/app-main.js"
      ],
      "ignores": [
        "regex:/node_modules/"
      ],
      "shim": {
        "underscore": "_",
        "backbone": "Backbone",
        "handlebars": "Handlebars"
      },
      "destFile": "build/app.js",
      "minDestFile": "build/app.min.js"
    },
    {
      "_type": "handlebars",
      "watchDir": "templates",
      "files": [
        "templates/app-template1.handlebars",
        "templates/app-template2.handlebars",
        "templates/app-template3.handlebars"
      ],
      "destFile": "build/app-templates.js",
      "minDestFile": "build/app-templates.min.js"
    }
  ]
}
```

### Bud types
#### dynamic
Given a list of input files, expands all direct + transitive dependencies and outputs all files in order such that, for any given module, no module will appear before any of its dependents.

#### static
A simple bud that concatenates configured list of files.

#### handlebars
Runs the handlebars precompiler (http://handlebarsjs.com/precompilation.html) for the configured set of files.

---
_Source: https://npm.io/package/sakura · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
