Frontend building is delegated to NPM and so leverages the NodeJS ecosystem.
In particular:
- a package.json file is used to configure frontend dependencies, needed tools and building scripts
- babel is used for ES6/7 and JSX transpiling integrated with the other tools (e.g. webpack)
- webpack-dev-server is used to host the development application instance
- mocha/expect is used as a testing framework (with BDD style unit-tests)
- webpack: as the bundling tool, for development (see webpack.config.js), deploy (see prod-webpack.config.js) and test (see test.webpack.js
- karma is used as the test suite runner, with several plugins to allow for custom reporting, browser running and so on; the test suite running is configured through different configuration files, for single running or continuous testing
- istanbul/coveralls are used for code coverage reporting
- eslint is used to enforce coding styles guidelines, the tool is configured using a .eslintrc file
Available scripts
- download dependencies and init developer environment
npm install
- start development instance
npm start
- start development instance with examples
npm run examples
- run test suite once
npm test
- run continuous test suite running
npm run continuoustest
- run single build / bundling
npm run compile
- run ESLint checks
npm run lint
- run tests from Maven
npm run mvntest
- build for travis
npm run travis