A Browserify plugin to map whole directories as different directories to browserify. This is useful if you have a common batch of files that you don't want to have to refer to relatively all the time.
Suppose you've got an app structure that looks like
app
- views
- home
index.js
- people
index.js
_avatar.js
_description.js
- models
person.js
// _avatar.js
// this gets really old after a while, and is prone to breaking if you change the directory hiearchy.
var person = require('../../models/person.js')
// This is much better
var person = require('models/person.js')
var browserify = require('browserify')
, remapify = require('remapify')
, b = browserify(_dirname)
b.plugin(remapify, [
{
src: './client/views/**/*.js' // glob for the files to remap
, expose: 'views' // this will expose `__dirname + /client/views/home.js` as `views/home.js`
, cwd: __dirname // defaults to process.cwd()
}
])
b.bundle()
Array of objects. Each object is one remapping.
Glob pattern to find the files to remap.
Replace the cwd
of each file in src
with this value.
Specify the 'current working directory' for the glob pattern to start from and for the expose
option to replace.
All options specified by the glob module can be used as well.
Remapify will emit events while processing. This is implemented to make testing easier, but… maybe it'll be useful for other things. The events are emitted on the bundle.
Emitted when the globbing finds a file to remap.
file
The path to the fileexpandedAliases
The list of files and what they will be exposed as as found so far. Includes this file.globber
The full glob instance.pattern
The glob pattern in use.
Emitted when all files have been found to be remapped.
The arguments are the same as above.
Emitted when all patterns have been processed, and all files remapped.
expandedAliases
The list of all matched files and what they will be exposed as when remapify finishes.
All tests are mocha. You can run them with either npm test
or mocha test
.
- TDD with
nodemon -x npm -- test
- Release with
npm run release
- Releasing runs jscs and jshint. You can manually run with
npm run lint
See CHANGELOG.md