TopGit tracks browserify/brfs on GitHub. The project has 556 stars. browserify fs.readFileSync() static asset inliner
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
fs.readFileSync() and fs.readFile() static asset browserify transform
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', 'utf8');
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', 'utf8');
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'));
async
You can also use fs.readFile():
var fs = require('fs');
fs.readFile(__dirname + '/robot.html', 'utf8', function (err, html) {
console.log(html);
});
When you run this code through brfs, it turns into:
Inside of each pathExpr, you can use
statically analyzable expressions and
these variables and functions:
__dirname
__filename
path if you var path = require('path') first
require.resolve()
Just like node, the default encoding is null and will give back a Buffer.
If you want differently-encoded file contents for your inline content you can
set enc to 'utf8', 'base64', or 'hex'.
In async mode when a callback cb is given, the contents of pathExpr are
inlined into the source inside of a process.nextTick() call.
When you use a 'file'-event aware watcher such as
watchify, the inlined assets will be
updated automatically.
If you want to use this plugin directly, not through browserify, the api
follows.
var brfs = require('brfs')
var tr = brfs(file, opts)
Return a through stream tr inlining fs.readFileSync() file contents
in-place.
Optionally, you can set which opts.vars will be used in the
static argument evaluation
in addition to __dirname and __filename.
opts.parserOpts can be used to configure the parser brfs uses,
acorn.
events
tr.on('file', function (file) {})
For every file included with fs.readFileSync() or fs.readFile(), the tr
instance emits a 'file' event with the file path.
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.
gotchas
Since brfs evaluates your source code statically, you can't use dynamic expressions that need to be evaluated at run time. For example:
// WILL NOT WORK!
var file = window.someFilePath;
var str = require('fs').readFileSync(file, 'utf8');
Instead, you must use simpler expressions that can be resolved at build-time:
var str = require('fs').readFileSync(__dirname + '/file.txt', 'utf8');
Another gotcha: brfs does not yet support ES module import statements. See brfs-babel for an experimental replacement that supports this syntax.
TopGit's last sync did not record any GitHub topics for browserify/brfs. GitHub topics appear in the right sidebar of a repository page; that's the authoritative place to check.
How active is development on browserify/brfs?
The most recent commit recorded on browserify/brfs was 1.7 years ago, based on the GitHub push timestamp. The repository has 58 forks — one of the better signals of community interest.
How many stars does browserify/brfs have?
browserify/brfs has 556 GitHub stars — refresh the page for the live number, or check github.com/browserify/brfs. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What is browserify/brfs?
browserify/brfs (browserify/brfs) is a JavaScript project on GitHub. From the project's own README: browserify fs.readFileSync() static asset inliner
What language is browserify/brfs written in?
browserify/brfs is written primarily in JavaScript. GitHub's language field is based on the largest share of bytes in the default branch.
Read full README in the tab above.
Still deciding about brfs?
One click hands the question to an AI along with this page — see what it says about brfs.