Extension CLI Development
- This CLI is built with Node.Js, written in JavaScript, and uses numerous packages listed below.
- The source code is available on Github.
- Releases are published on NPM.
- This user guide is built with MkDocs and MkDocs material theme.
- CI/CD by Travis CI and documentation served by Github Pages.
Project Organization
| Path | Description |
|---|---|
| └ .github | Github config files and markdown |
| └ cli | all available commands are defined here |
| └ config | Resources and config files used by the commands in cli |
| └ guide | User guide |
| └ test | CLI unit tests |
└ /* |
Application root; various project config files |
To setup a local dev environment and develop the CLI application, see
Dependencies
Extension CLI is built with the following dependencies:
| # | Package name | Purpose |
|---|---|---|
| 1. | @babel/preset-env |
for modern JavaScript syntax |
| 2. | @babel/register |
for unit testing |
| 3. | chai |
BDD/TDD assertion library for unit testing |
| 4. | chalk |
Add color to terminal output |
| 5. | cli-spinner |
Terminal spinner to indicated progress |
| 6. | commander |
handle CLI input arguments |
| 7. | del |
for clearing generated files |
| 8. | eslint |
for linting JavaScript |
| 9. | gulp |
for running build script |
| 10. | gulp-change |
JSON file content manipulations |
| 11. | gulp-clean-css |
Minify CSS |
| 12. | gulp-concat |
Concatenates files (used for CSS) |
| 13. | gulp-htmlmin |
Removes whitespace from HTML |
| 14. | gulp-jsonminify |
minify JSON files (manifest, locales) |
| 15. | gulp-load-plugins |
to load various gulp plugins |
| 16. | gulp-merge-json |
merge locales files |
| 17. | gulp-rename |
rename files during builds |
| 18. | gulp-sass |
process SASS files during builds |
| 19. | gulp-zip |
generate zip files |
| 20. | jsdoc |
generate docs |
| 21. | jsdom |
mock DOM in Node.js env |
| 22. | jsdom-global |
adds window, document to unit testing env |
| 23. | mocha |
unit testing framework |
| 24. | nyc |
unit testing code coverage tool |
| 25. | prompts |
create CLI prompts with interactive selectors |
| 26. | sass |
compile SASS files during builds |
| 27. | sinon |
JavaScript test spies, stubs and mocks |
| 28. | sinon-chrome |
unit testing for extensions |
| 29. | webpack-stream |
build javascript files |
| 30. | yargs |
parse keyword args |