All Projects → sw-yx → egghead-cli-workshop

sw-yx / egghead-cli-workshop

Licence: MIT license
Build Custom CLI Tooling with OClif and React-Ink!

Programming Languages

typescript
32286 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
CSS
56736 projects
Batchfile
5799 projects

CLI Workshop

👋 hi there! My name is swyx and this is the source material for the Egghead CLI workshop!!

image

Pre-Workshop Instructions/Requirements

In order for us to maximize our efforts during the workshop, please do the following:

The more prepared you are for the workshop, the better it will go for you.

System Requirements

  • git v2.20.1 or greater
  • NodeJS v10.15.3 or greater
  • npm v6.9.0 or greater

All of these must be available in your PATH. To verify things are set up properly, you can run this:

git --version
node --version
npm --version

If you have trouble with any of these, learn more about the PATH environment variable and how to fix it here for windows or mac/linux.

Structure

  • 1 - CLI Basics
    • 1A: Create a Hello World Single-Command CLI with Oclif
    • 1B: Parse Arguments and Flags in an Oclif Command
    • 1C: Understand when to use Multi-Command vs Single-Command in Oclif
    • 1D: Set up Debugging and Testing for CLI's
  • 2 - Heavy Lifting
    • 2A: Beautiful Prompts for User Input with Enquirer
    • 2B: Read User Config with Cosmiconfig
    • 2C: Build Your Own Boilerplate Scaffolding CLI with Copy-Template-Dir
    • 2D: Execute and Pipe Child Processes with Execa
  • 3 - Polish
    • 3A: Prompt Users to Update CLI Versions with Update Notifier
    • 3B: Store State on Filesystem in CLI's respecting XDG-spec with Conf
    • 3C: Create CLI's that Intelligently Adapt to Usage with Frecency
    • 3D: Polish CLI Output with Ora, CLI-UX, and Chalk
  • 4 - React Ink
    • 4A: Build Interactive CLI Components with React Ink
    • 4B: Create Flexible CLI Layouts with React Ink's Box Component
    • 4C: Create Dynamic Command Line User Interfaces with React Ink Input Components

License

MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].