[Tools] Create a Simple CLI Tool in Node.js with CAC
Posted Answer1215
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Tools] Create a Simple CLI Tool in Node.js with CAC相关的知识,希望对你有一定的参考价值。
Command-line tools can help you with all sorts of tasks. This lesson covers the very basics of setting up a CLI tool in Node.js by creating your project with npm, setting up your bin script, and using CAC to parse a single argument.
Create a new project, change the "name" porp\'s value to "hi", then add a "bin" prop, so next time, when we invoke "hi", it will run the command in "bin".
package.json
{ "name": "hi", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \\"Error: no test specified\\" && exit 1" }, "keywords": [], "author": "", "license": "ISC", "bin": "./index.js", "devDependencies": { "cac": "6.3.12" } }
Install:
npm i -D cac
Create index.js file:
- Make sure you have \'
#!/usr/bin/env node
\' on the top of the file, then it knows should run in node env. - Using cac to build commad, you can define \'option\', \'command\'
- Last you should always call cli.parse() to run the command
#!/usr/bin/env node const cli = require(\'cac\')(); cli.option(\'--type <type>\', \'Provide type, [date|foo]\') // name is a required field cli.command(\'<name>\', \'Provide your name\') .action((name, options) => { const {type} = options; if (type === \'date\') { console.log(`Hi ${name}, Today is ${new Date().toDateString()}`) } else if (type === \'foo\') { console.log(`Hi ${name}, you should take a rest!`) } else { console.log(`Hi ${name}, Good job!`) } }) cli.help() // Display version number when `-h` or `--help` appears cli.version(\'0.0.0\') cli.parse()
Run:
以上是关于[Tools] Create a Simple CLI Tool in Node.js with CAC的主要内容,如果未能解决你的问题,请参考以下文章
[Tools] Create a Chrome Extension
Artix-7 50T FPGA试用笔记之Create a simple MicroBlaze System
git - Trying to create a local repo of go.tools that is go get-able - Stack Overflow
[Tools] Batch Create Markdown Files from a Template with Node.js and Mustache
sqpark编译时maven的pom文件内容(org.scala.tools.archetypes:scala-archetype-simple)