Standardised build tools for Origami modules and products developed based on these modules.
If you have any issues with OBT, please check out troubleshooting guide before raising an issue.
Install these dependencies:
Install the build tools globally:
npm install -g origami-build-tools
Developing modules locally
Build and browse the demos (typically: http://localhost:8080/demos/local/), automatically re-build the module's demos and assets every time a file changes:
origami-build-tools demo --runServer --watch
Install npm and bower dependencies required to build modules.
It comes with support for things like:
- Babel so you can use ES2017 features in your modules and products
- autoprefixer so you don't have to worry about writing browser prefixes in your Sass
--js option. (default: ./src/main.js)
Set the main Sass file with the
--sass option. (default: ./src/main.scss)
Set the name of the built JS file with the
--build-js option. (default: main.js)
Set the name of the built CSS file with the
--build-css option. (default: main.css)
Set the name of the folder to store the built CSS and JS with the
--build-folder option. (default: ./build/)
Build the files for production environments with the
--production option. (default: off)
If building a library use the
--standalone option to specify the name you want the library to be accessed with. (default: off)
Build demos found in the demo config file.
Build a specific demo with the
--productionis set, demos are built to pull assets through the Origami Build Service.
Non-production demos consist of HTML, CSS and JS (if Sass & JS exists), and are created in
demos/local/. These files should not be committed. It is recommended to add demos/local/ to your
Run Origami specification tests and component specific tests.
--debugis set, the test runner will not exit automatically to allow debugging of the tests.
Checks Sass supports silent and non-silent compilation modes.
pa11y.html demo exists, confirms it is accessible using Pa11y.
package.json contains a
test script, confirms it exits with a 0 exit code.
Runs tests using Karma defaulting to Chrome Stable, can be configured to use BrowserStack by using the
--browserstack flag. You will need the environment variables
BROWSER_STACK_ACCESS_KEY set. This will run the tests on the minimum version for enhanced experience based on the [FT Browser Support Policy[(https://docs.google.com/document/d/1mByh6sT8zI4XRyPKqWVsC2jUfXHZvhshS5SlHErWjXU).
Initialises a new component with a full boilerplate folder structure.
This command takes an argument in the form of a component name, which will populate all of the relevant files within that tree. Defaults to
obt init o-my-new-component
Migrating from 6.X.X to 7.X.X
The ability to use OBT via it's programmatic API has been removed, if you were using OBT via
gulp, you will need to migrate to the command line version of OBT.
OBT has removed the ability to configure the way it installs/builds/verifies code, this is to ensure that systems built with OBT follows the Origami specification and conventions.
Migrating from 5.X.X to 6.X.X
If you are supplying your own custom scss-lint configuration you need to convert it to an equivalent sass-lint configuration, here is a tool which can do this for you. The programatic API and CLI flag has also changed from
This software is published by the Financial Times under the MIT licence.