跳至主要內容

使用 TypeScript 开发 Node.js CLI

guodongAndroid大约 2 分钟

前言

本文简单介绍如何使用 TypeScript 搭建 Node.js CLI 开发框架。

开发环境

创建项目

通过 npm init 命令创建一个新的名为 hello 的 Node.js 项目,这将在 hello 根目录下创建一个 package.json 配置文件:

mkdir hello
cd hello
npm init -y // 使用 `-y` 选项保持默认参数

为支持 ES 模块,在 package.json 中增加 type 属性并传入 module

{
+	"type": "module",
}

为了运行 CLI,在 package.json 中增加 bin 属性并传入入口文件:

{
+	"bin": "src/index.ts",
}

然后,需要安装 TypeScript、@types/node 以及 ts-node:

npm install -D typescript @types/node ts-node

此时,package.json 中的内容如下所示:

{
  "name": "hello",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "type": "module",
  "bin": "src/index.ts",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@types/node": "^20.8.0",
    "ts-node": "^10.9.1",
    "typescript": "^5.2.2"
  }
}

为了让项目使用 TypeScript 编译器编译,使用 npx tsc --init 命令创建一个 tsconfig.json 配置文件并配置默认的编译选项:

npx tsc --init

如下所示修改 tsconfig.json

{
  "compilerOptions": {
    "strict": true,
    "target": "ES2022",
    "module": "ES2022",
    "sourceMap": false,
    "esModuleInterop": true,
    "moduleResolution": "Node",
  },
  "include": ["src/**/*.ts"],
  "ts-node": {
    "esm": true,
  }
}

创建入口文件

创建 package.jsonbin 属性配置的 TypeScript 入口文件 src/index.ts,在文件的第一行添加以下 shebang

#! /usr/bin/env npx ts-node

接下来为 src/index.ts 添加执行权限:

chmod u+x ./src/index.ts

然后在文件中添加一条输出:

console.log('Hello CLI');

文件完整内容如下:

#! /usr/bin/env npx ts-node

console.log('Hello CLI');

现在这个文件就可以执行了:

./src/index.ts

输出如下:

Hello CLI

execute out log

全局命令

现在可以使用以下命令在本地全局安装 npm 包:

npm link

安装完成后,可以使用 package.json 中的项目名称执行:

hello

global execute out log

使用以下命令可以取消全局命令:

npm unlink -g hello

至此 Node.js CLI 框架搭建完成,可以编写业务逻辑代码了。

使用 Node.js 开发的 CLI