Skip to content
stevemao edited this page Sep 7, 2014 · 5 revisions

This page lists various tools that either use browserify or add features to it.

Task runners

Compiling for Development

There are two main ways that people like to recompile browserify bundles automatically as the files change. One way is to generate bundles on the fly attached to an existing web server. Another way is to run a standalone command or module that will only watch for changes and write to disk with the latest output.

Web Server Tools

  • [beefy] a local development server designed to work with browserify which creates bundles on demand
  • [appup] launch apps that use an express main server and an optional restify api server and bundle with browserify
  • [enchilada] host your bundles as middleware via express or connect
  • [browserify-middleware] host your bundles as middleware via express or connect
  • [sprockets-browserify] Serve node modules though Sprockets using browserify
  • [connect-browserify] provides yet another express/connect middleware for browserify which can rebuild a bundle automatically on source changes (uses watchify internally)
  • [bfydir] is like [beefy] but different: you can run one server to bundle multiple *.js-files simultaneously (via [watchify])

Standalone Tools

  • [watchify] efficiently re-compile the bundle automatically when you edit files
  • parcelify Output css or other bundles based on the browserify dependency graph.

Compiler Pipeline

These tools fit somewhere into the pipeline of module-deps | insert-module-globals | browser-pack that browserify sets up internally or deal with module-deps json output or input directly. You can use these tools to build your own browserify more suited to your specific needs.

  • [module-deps] - create json output from entry files that can be fed into browser-pack
  • [insert-module-globals] - transform [module-deps] input to insert browser shims for Buffer, __filename, __dirname, and global
  • [browser-pack] - generate a bundle of javascript from [module-deps] json input
  • [browser-unpack] - create [module-deps]-formatted output from an existing bundle file
  • [factor-bundle] - consume [module-deps] input, splitting out each entry file into a separate bundle and factoring out the modules held in common by multiple bundles
  • [intreq] - transform require('string') to require(n) in a [module-deps] stream to save bytes

Bundle Tools

These tools accept a bundle file generated by [browserify] or [browser-pack] as input.

  • [exorcist] pull the source map found inside a stream into an external .js.map file
  • [browser-unpack] - create [module-deps]-formatted output from an existing bundle file
  • [derequire] - replace require() calls with _dereq_() so that bundles can be required by browserify or similar static analysis tools again. This module is used in browserify --standalone.

Testing

  • [testling] run [testling-ci] tests locally.
  • [zuul] run your test suite in many browsers without having them installed locally
  • [proxyquireify] proxy browserify's require in order to override dependencies while testing
  • [mochify] TDD for browserified code with Mocha, PhantomJS and WebDriver
  • [karma-bro] bundle test files via browserify when being run with [karma]

Refactoring

  • [browserify-ftw] refactor requirejs AMD projects to work with browserify

Other tools

  • cartero full asset pipeline based on commonjs and browserify.
  • [xcss] plugin for browserify collects all require() calls which reference stylesheets and bundle them into a separate CSS bundle.

Transform Helpers

  • [browserify-transform-tools] a library of handy functions for loading configuration and generating transforms

[Broccoli]https://github.com/broccolijs/broccoli [Gulp]:http://gulpjs.com [recipe]:https://github.com/gulpjs/gulp/blob/master/docs/recipes/fast-browserify-builds-with-watchify.md [beefy]:https://github.com/chrisdickinson/beefy [appup]:https://github.com/thlorenz/appup [testling]:https://github.com/substack/testling [zuul]:https://github.com/defunctzombie/zuul [proxyquireify]:https://github.com/thlorenz/proxyquireify [testling-ci]:http://ci.testling.com [exorcist]:https://github.com/thlorenz/exorcist [browserify-ftw]:https://github.com/thlorenz/browserify-ftw [watchify]:https://github.com/substack/watchify [enchilada]:https://github.com/defunctzombie/node-enchilada [browserify-middleware]:https://github.com/ForbesLindesay/browserify-middleware [sprockets-browserify]:https://github.com/janv/sprockets-browserify [browserify-transform-tools]:https://github.com/benbria/browserify-transform-tools/ [module-deps]:https://github.com/substack/module-deps [browser-pack]:https://github.com/substack/browser-pack [browser-unpack]:https://github.com/substack/browser-unpack [insert-module-globals]:https://github.com/substack/insert-module-globals [factor-bundle]:https://github.com/substack/factor-bundle [browserify]:http://browserify.org [derequire]:https://github.com/calvinmetcalf/derequire [intreq]:https://github.com/substack/intreq [mochify]:https://github.com/mantoni/mochify.js [xcss]: https://github.com/andreypopp/xcss#using-as-a-browserify-plugin [connect-browserify]: https://github.com/andreypopp/connect-browserify [bfydir]: https://github.com/guybrush/bfydir [karma-bro]: https://github.com/Nikku/karma-bro [karma]: https://karma-runner.github.io

Clone this wiki locally