Skip to content

Latest commit

 

History

History
118 lines (76 loc) · 2.2 KB

readme.markdown

File metadata and controls

118 lines (76 loc) · 2.2 KB

brfs

browserify fs.readFileSync() static asset inliner

build status

This module is a plugin for browserify to parse the AST for fs.readFileSync() calls so that you can inline file contents into your bundles.

Even though this module is intended for use with browserify, nothing about it is particularly specific to browserify so it should be generally useful in other projects.

example

for a main.js:

var fs = require('fs');
var html = fs.readFileSync(__dirname + '/robot.html');
console.log(html);

and a robot.html:

<b>beep boop</b>

first npm install brfs into your project, then:

on the command-line

$ browserify -t brfs example/main.js > bundle.js

now in the bundle output file,

var html = fs.readFileSync(__dirname + '/robot.html');

turns into:

var html = "<b>beep boop</b>\n";

or with the api

var browserify = require('browserify');
var fs = require('fs');

var b = browserify('example/main.js');
b.transform('brfs');

b.bundle().pipe(fs.createWriteStream('bundle.js'));

methods

brfs looks for fs.readFileSync(pathExpr, enc='utf8') calls.

The pathExpr function is evaluated as an expression with __dirname and __filename variables available.

If you want differently-encoded file contents for your inline content you can set enc to 'base64' or 'hex'.

If you want to use this plugin directly, not through browserify, the api follows.

var brfs = require('brfs')

var tr = brfs(file)

Return a through stream tr inlining fs.readFileSync() file contents in-place.

usage

A tiny command-line program ships with this module to make debugging easier.

usage:

  brfs file
 
    Inline `fs.readFileSync()` calls from `file`, printing the transformed file
    contents to stdout.

  brfs
  brfs -
 
    Inline `fs.readFileSync()` calls from stdin, printing the transformed file
    contents to stdout.

install

With npm do:

npm install brfs

then use -t brfs with the browserify command or use .transform('brfs') from the browserify api.

license

MIT