mimosa-browserify

CommonJS support for Mimosa via Browserify

npm install mimosa-browserify
22 downloads in the last week
68 downloads in the last month

mimosa-browserify

Mimosa module to support CommonJS via Browserify. require() your web modules Node.js style!

quickstart

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.

usage

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
    }]

skeletons

browserify-basic is the default Mimosa project modified for browserify.

ember-commonjs is a simple Mimosa project with Ember.js support.

npm loves you