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 |