码迷,mamicode.com
首页 > Web开发 > 详细

[Tools] Create a Simple CLI Tool in Node.js with CAC

时间:2019-01-04 17:14:21      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:specified   last   depend   图片   desc   sim   tools   erro   esc   

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

标签:specified   last   depend   图片   desc   sim   tools   erro   esc   

原文地址:https://www.cnblogs.com/Answer1215/p/10220555.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!