The BRJS documentation is broken up into 3 high-level sections:
- Concepts - overview of core concepts within BRJS
- Use - documentation about using BRJS to build an application
- Extend - docs on extending the BRJS toolkit functionality e.g. creating plugins
If you are looking to try out BRJS then check out the Getting Started Guide.
BRJS consists of:
A Toolkit CLI
The Toolkit CLI environment runs on JRE 7 and includes a Jetty development web server and also provides support for:
- Scaffolding of apps, blades and tests, development helpers called Workbenches and more
- Running tests at a fine-grained level e.g. all app tests or just unit tests belonging to a blade
- Building and deploying of apps either as bundled static files or as part of a bundled WAR
- Dependency analysis when bundling assets (JS, CSS, HTML, XML, Images etc.) - only assets that your app uses are included
- Usage from any build process or CI environment
- Integration with a plugin architecture
In addition to the CLI, a number of commands can also be executed from a web dashboard.
- An EventHub library for decoupled communication between application functionality
- A ServiceRegistry where objects that offer a particular service can be registered and accessed throughout the application
- An internationalization and localisation framework
A Plugin Architecture
The Plugin Architecture means that you can create functionality to augment and extend the development workflow.
The plugin interfaces include:
- CommandPlugin - to create your own BRJS CLI command to do almost anything
- BundlerPlugin - used when bundling assets in both the development workflow and during the build and deploy steps
- LogicalTagPlugin - for tag replacement within assets
- FileTransformPlugin - used when transforming assets in both the development workflow and during the build and deploy steps e.g. for adding TypeScript, ECMAScript6 or CoffeeScript support
- TestPlugin - for adding support for additional testing tools
Because the documentation is open source we hope it's easy to submit improvements and fixes to them using pull requests. However, if you see a mistake and either can't fix it, or don't have time to, please raise an issue.