如何用 TypeScript 匠心打造一款 node.js 命令行工具

1,240 阅读1分钟

尚在写作中,不定期更新

本文旨在通过命令行项目开发,帮助前端新人了解相关的 npm 实用开发包、理解掌握有关知识和技巧。

也希望能帮助 IT 从业者快速打造一款心仪、可开发性强的命令行工具。

阅读本文需要读者具有 node.js 运行和 npm 包管理的基本了解,确保安装好 node.js 和 IDE 开发工具。

好包推荐

核心库:

  • Commander.js

    面向对象的命令行参数解析库,可扩展性极强,自动生成帮助信息。该库被其他前端著名框架采用,API 见中文文档

    请不要按某些 C++ 教材说的做法:自己手写 argv 解析算法了。避免重复造轮子了。

  • ts-node

    让 node.js 能运行 TypeScript 代码

体验优化库:

  • Inquirer.js

    命令行获取用户输入的界面编程接口~~,问姓、问名、问要不……~~

    界面极其优雅,看不到 github 图片效果见码云镜像项目

    妈妈再也不用担心 cin、cout 写用户界面太垃圾啦~

辅助技术:

  • Prettier: 多编程语言、跨 IDE 支持的可配置代码格式化工具
  • ESLint: 代码规范检测,扫描问题代码
  • Jest: 接口测试

知识点和小技巧

npm scripts

详见: www.ruanyifeng.com/blog/2016/1…

避免 npm 全局安装

在很多老旧 IT 资料教你安装 typescript 编译器、create-react-app vue-cli angular-cli 创建前端项目、使用 eslint 等命令行工具,它会让你这样安装:

# 过时示范
npm install <package_name> -g
<package_name> ... # 执行

有了 npx,你可以直接 npx <package_name> ...。原理阮一峰博客有解。

进阶

沙箱环境

推荐一套由原生 vm 改进的沙箱 JS 代码执行库 vm2