返回

拥有属于自己的命令行工具,从这里开始

前端

初窥门径

首先,让我们用一分钟的时间体验一下创建自己的命令行工具是什么感觉。

创建项目目录

让我们创建一个名为“hello-cli”的项目目录。使用如下命令:

mkdir hello-cli
cd hello-cli

安装必要的工具

现在,我们需要安装必要的工具:commander、inquirer和chalk。您可以使用以下命令安装它们:

npm install commander inquirer chalk --save

创建第一个命令行程序

在“hello-cli”目录中创建一个名为“index.js”的文件。这是我们将要编写代码的地方。

在“index.js”文件中,添加以下代码:

const program = require('commander');
const inquirer = require('inquirer');
const chalk = require('chalk');

program
  .version('0.0.1')
  .option('-n, --name <name>', 'Your name')
  .parse(process.argv);

inquirer
  .prompt([
    {
      type: 'input',
      name: 'color',
      message: 'What is your favorite color?'
    }
  ])
  .then(answers => {
    console.log(chalk.keyword(answers.color)('Hello, ' + program.name + '!'));
  });

运行程序

使用以下命令运行程序:

node index.js

您应该会看到以下输出:

Usage: index.js [options]

Options:
  -h, --help             output usage information
  -V, --version          output the version number
  -n, --name <name>      Your name

What is your favorite color? red
Hello, Your name!

深入探究

上面的例子只是一个简单的入门例子。您可以使用commander、inquirer和chalk来创建更复杂和强大的命令行工具。

使用commander创建命令和选项

您可以使用commander来创建命令和选项。例如,以下代码创建了一个名为“greet”的命令和一个名为“name”的选项:

program
  .command('greet <name>')
  .option('-l, --loud', 'Loud greeting')
  .action((name, options) => {
    if (options.loud) {
      console.log(chalk.green.bold('Hello, ' + name + '!'));
    } else {
      console.log(chalk.green('Hello, ' + name + '!'));
    }
  });

使用inquirer与用户交互

您可以使用inquirer与用户交互。例如,以下代码询问用户他们的名字和喜欢的颜色:

inquirer
  .prompt([
    {
      type: 'input',
      name: 'name',
      message: 'What is your name?'
    },
    {
      type: 'list',
      name: 'color',
      message: 'What is your favorite color?',
      choices: ['red', 'green', 'blue']
    }
  ])
  .then(answers => {
    console.log(chalk.keyword(answers.color)('Hello, ' + answers.name + '!'));
  });

使用chalk给命令行输出着色

您可以使用chalk给命令行输出着色。例如,以下代码将“Hello, world!”输出为绿色:

console.log(chalk.green('Hello, world!'));

结语

commander、inquirer和chalk是创建命令行工具的强大工具。您可以使用它们来创建各种各样的工具,从简单的脚本到复杂的应用程序。如果您正在寻找一种方法来提高您的开发效率,那么我强烈推荐您尝试一下这些工具。