watch mode for browserify builds
Update any source file and your browserify bundle will be recompiled on the spot.
Use watchify
with all the same arguments as browserify
except that
-o
is mandatory:
$ watchify main.js -o static/bundle.js
Now as you update files, static/bundle.js
will be automatically incrementally rebuilt on
the fly.
You can use -v
to get more verbose output to show when a file was written and how long the bundling took (in seconds):
$ watchify browser.js -d -o static/bundle.js -v
610598 bytes written to static/bundle.js 0.23s
610606 bytes written to static/bundle.js 0.10s
610597 bytes written to static/bundle.js 0.14s
610606 bytes written to static/bundle.js 0.08s
610597 bytes written to static/bundle.js 0.08s
610597 bytes written to static/bundle.js 0.19s
All the bundle options are the same as the browserify command except for -v
.
var watchify = require('watchify');
var fromArgs = require('watchify/bin/args');
Wrap a browserify bundle b
with watchify, returning the wrapped bundle
instance as w
.
When creating the browserify instance b
you MUST set these properties in the
constructor:
var b = browserify({ cache: {}, packageCache: {}, fullPaths: true })
You can also just do:
var b = browserify(watchify.args)
w
is exactly like a browserify bundle except that caches file contents and
emits an 'update'
event when a file changes. You should call w.bundle()
after the 'update'
event fires to generate a new bundle. Calling w.bundle()
extra times past the first time will be much faster due to caching.
Close all the open watch handles.
Create a watchify instance w
from an array of arguments args
. The required
constructor parameters will be set up automatically.
When the bundle changes, emit the array of bundle ids
that changed.
When a bundle is generated, this event fires with the number of bytes.
When a bundle is generated, this event fires with the time it took to create the bundle in milliseconds.
This event fires to with messages of the form:
X bytes written (Y seconds)
with the number of bytes in the bundle X and the time in seconds Y.
With npm do:
$ npm install -g watchify
to get the watchify command and:
$ npm install watchify
to get just the library.
MIT