browserify-loader
A CommonJS Loader for browserify workflow [ES6 support].
What is browserify-loader
browserify-loader
is another CommonJS loader for browserify workflow. With BL, You don’t need any tools like watchify, browserify-middleware to auto build and serve bundle *js in development env.
browserify-loader
is similar with requirejs, but:
- follow Modules/1.1.1 like Node
- get rid of wrapper code like
define()
- be compatible all
npm
package and allbower
components witch supportCommonJS
. likeunderscore
,backbone
,jQuery
and so on.
Getting start
install
Download browserify-loader
with npm
or bower
:
$ npm install browserify-loader
Put browserify-loader.js
in your page:
Then, browserify-loader
will start to run for main
file in your package.json
file.
options
browserify-loader
has two options to specify the main
script or package
location. and browserify-loader supports coffee-script
.
<script type="text/javascript" id="bl-script" main="backbone/app.js" package="backbone/" extensions="js json 6.js jsx" src="node_modules/browserify-loader/browserify-loader.js"></script>
- main: the main entrance script like
app.js
innode app.js
- package: the location where
browserify-loader
to loadpackage.json
, then get the main entrance frommain
property. - extensions: the enable extensions you want basing on your source code.
browserify-loader
now supports.js
,.6.js
(ES6),json
andjsx
(for react fans).
main 's priority is higher the package 's.
example
Look into todomvc-in-bl , which is a demo project based on todomvc to show how to use browserify-loader
.
API
define
The internal wrapper API.
define.registerExtension
Register extension to browserify-loader
, like:
var to5Transform = require('6to5/lib/6to5/transformation/transform')
define.registerExtension('jsx', function(script) {
return to5Transform(script, {modules: "common"}).code
})
define.performance
browserify-loader
's performance is important, and it is not ideal now yet!
browserify-loader provide a method to get its performance: define.performance()
Just think if there is no browserify-loader, where performance cost come from:
- script load time
and then thinking cost in browserify-loader:
-
xhr loading time, roughly equals script load time
-
define time, concat code, insert script tag and so on
-
analysis module's dependences
-
resolve dependences' uri, include get package.json recursively
Update
0.5.2
- hotfix
0.5.1
- rewrite in es6
0.5.0
- support ES6!
- remove support
coffee-script
0.4.2
- improve for friendly debuging.
0.4.0
- add
registerExtension
API - support
jsx
andjson
0.3.0
- use ES6's Promise instead of rsvp and eventemitter
0.2.0
- support
coffee-script