Mimosa module to support CommonJS via Browserify. require()
your web modules Node.js style!
Mimosa skeletons are available! You now only need one command to create a new browserify app.
mimosa skel:new browserify-basic myApp
to create a new browserify Mimosa app.mimosa skel:new ember-commonjs myApp
to create a new browserify Mimosa app with Ember.js.
Remember to npm install
then start developing with mimosa watch -s
.
Replace require
with browserify
in your mimosa-config.coffee
. Mimosa will automatically install mimosa-browserify from NPM if you don't already have it.
####Updating/Switching Versions
Use the mimosa
cli to manage versions. mimosa mod:list
will show you what you have installed.
To update to the lastest version: mimosa mod:install mimosa-browserify
You can also change to a specific version: mimosa mod:install mimosa-browserify@0.1.2
####Example configuration:
exports.config =
modules: ["server","browserify","lint","live-reload","bower"]
template:
wrapType: 'common'
commonLibPath: 'dust'
browserify:
bundles:
[
entries: ['javascripts/main.js']
outputFile: 'bundle.js'
]
shims:
jquery:
path: 'javascripts/vendor/jquery/jquery'
exports: '$'
aliases:
dust: 'javascripts/vendor/dust'
templates: 'javascripts/templates'
noParse: ['javascripts/vendor/jquery/jquery']
####shims
Note the use of shims to wrap non-CommonJS code. The documentation for the shim configuration can be found at browserify-shim.
####aliases
Aliases allow you to name your modules. This frees you from having to use relative paths. So in this example you could require('dust')
instead of require('./vendor/dust')
.
####noParse
Use noParse to let browserify know not to parse large vendor libraries with no node.js dependencies. This can help shave a few seconds off of your build time.
####templates
Mimosa as of v1.0.0-rc.4 can output CommonJS wrapped templates compatible with mimosa-browserify. Be sure to set template.wrapType
to common
and set your commonLibPath
if you want to use compiled templates. (you probably do)
####external bundles
Browserify external bundles are now supported. Thanks Kikimora!
libs = ["/vendor/js/jquery/jquery", "/vendor/js/bootstrap/bootstrap", ....]
browserify:
bundles:
[{
entries: libs
outputFile: 'lib-bundle.js'
},{
entries: ['js/app.js']
outputFile: 'app-bundle.js'
external: libs
}]
browserify-basic is the default Mimosa project modified for browserify.
ember-commonjs is a simple Mimosa project with Ember.js support.