bankai
Streaming asset compiler
Serve, compile and optimize assets
Installation
$ npm install bankai
Usage
Given the following client.js
:
const css = require('sheetify')
const html = require('bel')
const prefix = css`
:host > h1 { font-size: 12rem }
`
const el = html`
<section class=${prefix}>
<h1>hello planet</h1>
</section>
`
document.body.appendChild(el)
Render with server.js
:
const bankai = require('bankai')
const http = require('http')
const path = require('path')
const clientPath = path.join(__dirname, 'client.js')
const assets = bankai(clientPath)
http.createServer((req, res) => {
switch (req.url) {
case '/': return assets.html(req, res).pipe(res)
case '/bundle.js': return assets.js(req, res).pipe(res)
case '/bundle.css': return assets.css(req, res).pipe(res)
default: return (res.statusCode = 404 && res.end('404 not found'))
}
}).listen(8080)
CLI
Usage:
$ bankai <command> [options]
Commands:
<default> Run 'bankai start'
start <filename> Start a bankai server
build <filename> <directory> Compile and export files to a directory
Options:
-c, --css=<subargs> Pass subarguments to sheetify
-h, --help Print usage
-j, --js=<subargs> Pass subarguments to browserify
-o, --open=<browser> Open html in a browser [default: system default]
-O, --optimize Optimize assets served by bankai [default: false]
-p, --port=<n> Bind bankai to <n> [default: 8080]
Examples:
$ bankai index.js -p 8080 # start bankai on port 8080
$ bankai index.js --open # open html in the browser
$ bankai -c [ -u sheetify-cssnext ] # use cssnext in sheetify
$ bankai -j [ -t brfs ] # use brfs in browserify
$ bankai build index.js dist/ # compile and export to dist/
$ bankai build -O index.js dist/ # optimize compiled files
API
assets = bankai(entryFile, opts?)
Create a new instance of bankai
. The first argument is a route to the entry
file that is compiled by browserify
. The second argument is optional and can
take the following options:
- opts.js: (default:
{}
). Pass options to browserify
. Cannot be
disabled - opts.css: (default:
{}
). Pass options to sheetify
. Set to false
to
disable - opts.html: (default:
{}
). Pass options to create-html
. Set to false
to disable - opts.optimize: (default
false
). Disable livereload scripts, cache
output and optimize all bundles
readableStream = assets.js(req?, res?)
Return a js
stream. Sets correct header values if req
and res
are passed.
readableStream = assets.html(req?, res?)
Return a html
stream. Sets correct header values if req
and res
are passed.
readableStream = assets.css(req?, res?)
Return a css
stream. Sets correct header values if req
and res
are passed.
See Also
License
MIT