返回

Varlet实战篇:从入门到实战打造一款CLI神器

前端

前言

Varlet ,一个基于 Node.js 的强大命令行界面 (CLI) 框架,让开发者可以轻松创建交互式、可扩展的 CLI 工具。它提供了丰富的功能和友好的 API,让你专注于构建业务逻辑,而不用担心底层实现细节。

从入门到实战

搭建 CLI 项目

首先,初始化一个新的 Varlet 项目:

npx create-varlet-app my-cli

这将创建一个新的项目目录,包含所有必需的文件。

添加命令

接下来,在 src/commands 目录中创建一个新文件 greet.ts,其中包含以下代码:

import { Command } from '@varlet/cli';

export default class GreetCommand extends Command {
  signature = 'greet <name>';
  description = 'Greet the specified name.';

  async handle(name: string) {
    console.log(`Hello, ${name}!`);
  }
}

这将创建一个名为 greet 的新命令,它将接受一个名为 name 的参数。

运行 CLI

现在,你可以使用以下命令运行 CLI:

npx ts-node src/index.ts greet John

这将输出:

Hello, John!

进阶功能

交互式输入

Varlet 支持交互式输入,允许用户在运行时提供输入。例如,要询问用户的姓名,可以使用:

import { prompt } from '@varlet/cli';

const name = await prompt('What is your name?');

参数验证

Varlet 还提供了参数验证功能,可确保用户输入符合预期。例如,要验证 name 参数为非空字符串,可以使用:

import { Argv } from '@varlet/cli';

const argv = new Argv();

argv
  .command('greet <name>')
  .description('Greet the specified name.')
  .argument('<name>', 'The name to greet')
  .validator(name => typeof name === 'string' && name.length > 0);

选项和标志

除了参数,Varlet 还支持选项和标志,允许用户配置命令行为。例如,要添加一个 --verbose 选项,可以使用:

import { Argv } from '@varlet/cli';

const argv = new Argv();

argv
  .command('greet <name>')
  .description('Greet the specified name.')
  .option('--verbose', 'Enable verbose output');

结语

Varlet 为构建强大的 CLI 工具提供了全面的功能和友好的 API。从入门到实战,你可以轻松创建交互式、可扩展的 CLI。本文只是 Varlet 功能的冰山一角,更多信息请参阅官方文档:https://varlet.dev/docs/cli