📜  使用 Node.js 的简单任务管理器 CLI(1)

📅  最后修改于: 2023-12-03 15:36:32.334000             🧑  作者: Mango

使用 Node.js 的简单任务管理器 CLI

介绍

在项目开发过程中,管理任务是非常重要的一环。为了方便管理任务,在 Node.js 中可以使用简单任务管理器 CLI 来实现。

该任务管理器具有添加任务、删除任务、标记任务完成等功能,使用简单方便,可以提高开发效率。

安装

需要先在电脑上安装好 Node.js 环境,然后使用以下命令安装任务管理器:

npm install -g task-manager-cli
使用
添加任务

可以使用 task add 命令来添加新的任务:

task add "学习 Node.js"
列出所有任务

使用 task list 命令可以列出所有的任务:

task list
标记任务完成

使用 task done 命令可以将指定的任务标记为完成状态:

task done 1
删除任务

使用 task delete 命令可以删除指定的任务:

task delete 1
代码片段

下面是实现任务管理器的 JavaScript 代码:

const program = require('commander');
const { prompt } = require('inquirer');
const Table = require('cli-table');

const taskTable = new Table({
  head: ['ID', 'Task', 'Status'],
});

const tasks = [];

program
  .version('1.0.0')
  .description('Simple task manager CLI');

program
  .command('add <task>')
  .alias('a')
  .description('add a new task')
  .action((task) => {
    tasks.push({
      id: tasks.length + 1,
      task: task,
      completed: false,
    });
    console.log(`Task "${task}" added!`);
  });

program
  .command('list')
  .alias('l')
  .description('list all tasks')
  .action(() => {
    tasks.forEach((task) => {
      let status = ' ';
      if (task.completed) {
        status = '✔';
      }
      taskTable.push([task.id, task.task, status]);
    });
    console.log(taskTable.toString());
  });

program
  .command('done <id>')
  .alias('d')
  .description('mark a task as done')
  .action((id) => {
    const task = tasks.find((task) => task.id === parseInt(id));
    if (task) {
      task.completed = true;
      console.log(`Task "${task.task}" marked as done!`);
    } else {
      console.log(`Task with ID "${id}" not found!`);
    }
  });

program
  .command('delete <id>')
  .alias('del')
  .description('delete a task')
  .action((id) => {
    const taskIndex = tasks.findIndex((task) => task.id === parseInt(id));
    if (taskIndex !== -1) {
      tasks.splice(taskIndex, 1);
      console.log(`Task with ID "${id}" deleted!`);
    } else {
      console.log(`Task with ID "${id}" not found!`);
    }
  });

if (!process.argv.slice(2).length) {
  program.outputHelp();
} else {
  program.parse(process.argv);
}

以上是一个非常基本的实现,可以根据需要进行修改和优化。