Ender 1.0 - work in progress - developer notes
Architecture notes can be found in lib/README.md.
This branch won't be deployed to npm until it's ready for a 1.0 release. Use
npm link to install your local repo as the global ender package.
What does ready mean? We haven't quite pinned that down yet, but we'll get there!
npm install to install both the dependencies and the devDependencies, otherwise you won't be able to run the executable (in bin/ender) or run the tests (using the Makefile).
Unit tests can be invoked by running a
make unittests. Functional tests take longer to run as they check out packages from npm and can be invoked by running a
make functionaltests. All types of tests can be run with
make alltests--this must be done before any pull-request and must all pass.
Tests use BusterJS, you can read more about it here. Buster has integrated support for Sinon for mocking and stubbing, you can read more about it here. Note that Buster is still in Beta and may occasionally break. Bug @augustl or @cjno about that.
Some behavioural differences from 0.8.x
This branch should do everything that the current 0.8.x branch does, with some additions:
- Some of the output to stdout will be different. Mostly minor wording changes but also the
ender infooutput is included in each build, add and remove.
- Packages are properly ordered (!!). Your ender.js will contain the packages you requested in the order you requested them on the commandline, with any dependencies placed before they are required.
- bin/ender now gives proper exit-codes, if there is any kind of error you'll get a
1, otherwise a
"ender"key in package.json supports an array of files to concatenate to form the bridge.
- A new
--client-libargument can be used to specify an alternative to the default ender-js package as a client lib. At the moment a client lib still needs to conform to the basics of the
$+ CommonJS pattern in order to support existing Ender packages.
Ender is a full featured package manager for your browser.
In the browser - small, loosely coupled modules are the future and large, tightly-bound monolithic libraries are the past!
With Ender, if one library goes bad or unmaintained, it can be replaced with another. Need a specific package version? No problem! Does your package have dependencies? Let us handle that for you too!
For more information checkout http://ender.no.de