返回

Varlet 进阶篇:好用的工具(上)

前端

前言

在 CLI 的开发工程中,我们使用了一些好用的工具,极大地提升了开发效率。在这篇文章中,我将介绍这些工具,希望能帮助大家提高开发效率。

准备工作

我们首先新建一个空项目,然后在命令行中进入到该项目目录,执行以下命令:

npm init

这将创建一个 package.json 文件,用于定义项目的基本信息。

好用的工具

1. chalk

chalk 是一个用于在终端输出带颜色的文本的库。它可以使我们的输出信息更具可读性和美观性。

npm install chalk

示例:

const chalk = require('chalk');

console.log(chalk.red('错误'));
console.log(chalk.green('成功'));

2. commander

commander 是一个用于创建命令行界面的库。它提供了丰富的功能,可以轻松创建交互式、可扩展的命令行程序。

npm install commander

示例:

const program = require('commander');

program
  .command('add')
  .description('Add a new item')
  .action(() => {
    console.log('Adding a new item...');
  });

program.parse(process.argv);

3. cross-env

cross-env 是一个跨平台的设置环境变量的工具。它可以帮助我们在不同的操作系统中设置和使用环境变量。

npm install cross-env

示例:

cross-env NODE_ENV=production

这将在所有平台上设置 NODE_ENV 环境变量为 production

4. dotenv

dotenv 是一个用于加载 .env 文件并将其内容加载到环境变量中的库。.env 文件可以存储敏感信息,例如 API 密钥和数据库密码。

npm install dotenv

示例:

在项目根目录创建 .env 文件,并添加以下内容:

API_KEY=1234567890

然后,在你的代码中使用以下代码加载 .env 文件:

require('dotenv').config();

console.log(process.env.API_KEY); // 输出 1234567890

5. fs-extra

fs-extra 是一个扩展了 Node.js 原生 fs 模块的功能的库。它提供了更多有用的方法,例如递归创建目录、复制文件和删除目录。

npm install fs-extra

示例:

const fs = require('fs-extra');

fs.copySync('source', 'destination'); // 复制源目录到目标目录
fs.removeSync('directory'); // 删除目录

6. glob

glob 是一个用于查找文件和目录的库。它支持通配符,可以帮助我们轻松匹配特定模式的文件。

npm install glob

示例:

const glob = require('glob');

glob('**/*.js', (err, files) => {
  console.log(files); // 输出所有 js 文件的路径
});

7. inquirer

inquirer 是一个用于创建交互式命令行界面的库。它提供了丰富的功能,可以轻松创建交互式、用户友好的命令行程序。

npm install inquirer

示例:

const inquirer = require('inquirer');

inquirer
  .prompt([
    {
      type: 'input',
      name: 'name',
      message: 'What is your name?',
    },
  ])
  .then((answers) => {
    console.log(`Hello, ${answers.name}!`);
  });

8. ora

ora 是一个用于在终端中显示加载动画的库。它可以帮助我们为耗时操作提供视觉反馈,让用户知道程序正在运行。

npm install ora

示例:

const ora = require('ora');

const spinner = ora('Loading...');

spinner.start();

setTimeout(() => {
  spinner.stop();
}, 1000);

9. pretty-bytes

pretty-bytes 是一个用于将字节数转换为人类可读格式的库。它可以帮助我们在终端中以更友好的方式显示文件大小和内存使用情况。

npm install pretty-bytes

示例:

const prettyBytes = require('pretty-bytes');

console.log(prettyBytes(1000)); // 输出 1 KB
console.log(prettyBytes(1000000)); // 输出 1 MB

10. yargs

yargs 是一个用于解析命令行参数的库。它提供了丰富的功能,可以轻松创建健壮、易用的命令行程序。

npm install yargs

示例:

const yargs = require('yargs');

const argv = yargs
  .option('name', {
    alias: 'n',
    description: 'Your name',
    type: 'string',
  })
  .help()
  .alias('help', 'h')
  .argv;

console.log(`Hello, ${argv.name}!`);