One of the goals of this package is to re-create a full workflow that should be applyied to any big software creation.
This guide is going to be organized by the steps of the development, and explaining every tool used.
During this phase, the developer codes the features.
-
Eslint: Eslint provides linting capabilities to JS, so every developer should attach to the same code-style rules.
Recommended reading: https://eslint.org/docs/about/
-
eslint-config-airbnb-base: This package provides Airbnb's base JS .eslintrc (without React plugins) as an extensible shared config. This base is the "de facto" standard for ES6 linting rules.
-
Prettier: Prettier is an opinionated code formatter. It enforces a consistent style by parsing your code and re-printing it with its own rules that take the maximum line length into account, wrapping code when necessary. It adds more power to eslint in the formatting rules.
Recommended reading: https://prettier.io/docs/en/comparison.html
There is a test folder with the tests for the library. They has been written using the most regular JS frameworks
-
Sinon Is not used in this project, but for complex testing is always needed to test any kind of API calls. It provides stubs, spies and mocks. Their documentation is recommended to know their power, before using it: http://sinonjs.org/
Represents the percentage of code that has been tested. In this project we use
-
nyc: This is the new version of istambuljs, it generates an output of code coverage.
-
codecov: Upload coverage reports, link with github and allow to review the changes on pull requests.
As the code is written in ES6, it can't be used directly in node, so it has to be transpiled to UMD. In this project we use webpack.
-
Github: All you know it.
-
Husky: A tool to add git hooks in client side, totally integrated for JS projects.
-
Travis: Free CI for open-source projects.
-
semantic-release: Fully automated version management and package publishing. It's a really powerful package. it's used to create Git tags, changelogs, handlying the version number using semver, and enforcing the developers to maintain a sanitized git repository and using commit convention.
- npm: We use https://registry.npmjs.org/ as a package repository bower: We also deploy on bower (thanks to git tags generated by semantic-release)