The task runner is Gulp, but you don't need to know Gulp to use these tasks.
Code is compiled from the
src to the
build directory using
Linting and formatting are performed with ESLint, Prettier and Jscpd. We recommend using plugins with your IDE (code editor) for both Prettier and ESLint so that linting/formatting is performed as you code.
We use Ava to run tests. Each line of code must be tested.
Any task can be run using
gulp for example:
If you're on
cmd.exe (Windows) use
npx gulp ... instead.
The main commands are:
gulp build: build source files and test files. Must be run before running any code or unit tests.
gulp unit: run unit tests.
gulp test: perform the three tasks above.
gulp buildw and
gulp unitw to run them in watch mode.
Travis CI ensures that:
- tests pass on all supported environments.
- all source files are covered by tests and follow the same coding style.
Lint and check source files:
- find duplicated code with Jscpd.
This is automatically triggered before any
Build source files and test files:
- Other files are copied as is.
Source files are built from the
src directory to the
Test files are built from the
test directory to the
This must be done before running any code or unit tests.
Run unit tests (from the
build/test directory) with
can be specified, e.g.
gulp unit --update-snapshots or
gulp unit --files build/test/file.js.
To debug with the Chrome DevTools use
gulp unit --inspect build/test/file.js
--inspect-brk). Specifying a file inside
build/test/ is required.
- is performed when run in CI (Travis) or when
gulp unit --coveris used.
- is uploaded to codecov when run in CI.
This is performed on CI (Travis) for each OS (Windows, Mac, Linux) and supported Node.js version.
gulp unit and
gulp warn but in watch mode.
The watch mode works even when installing/updating/uninstalling dependencies or
changing the Gulp tasks themselves.
They can be performed together, e.g.
gulp buildw in one terminal tab and
gulp unitw in another.
Release a new patch/minor/major version on npm and GitHub using
The new version will only be published to npm after CI tests have passed.
Only the repository owner can perform these tasks.
Repositories with a
gulp top-level directory have additional tasks. Please
check those files to see which custom tasks are available.
If you found a bug or would like a new feature, don't hesitate to submit an issue on GitHub.
For other questions, feel free to chat with us on Gitter.
Everyone is welcome regardless of personal background. We enforce a Code of conduct in order to promote a positive and inclusive environment.
This project was made with
If the documentation is unclear or has a typo, please click on the page's
button (pencil icon) and suggest a correction.
If you would like to help us fix a bug or add a new feature, please check our guidelines. Pull requests are welcome!