使用 Typescript 开发 Nodejs 命令行工具
web前端开发
共 4567字,需浏览 10分钟
· 2020-11-11
为何使用TypeScript
初始化工程
mkdir ts-node-demo && cd ts-node-demo
npm init
package name: (typescript-cli)
version: (1.0.0)
description: a cli in typescript
entry point: (index.js)
test command:
git repository:
keywords: CLI,TypeScript
author: YourName
license: (ISC) MIT
- private: false,
+ private: true,
初始化 Git
git init
node_modules/
lib/
引入 Node 类型
npm i -D @types/node
引入 typescript
npm i typescript
./node_modules/.bin/tsc --init
+ "sourceMap": true,
+ "outDir": "lib",
"compilerOptions": {
...
},
+ "include": [
+ "src/**/*"
+ ]
编写代码
mkdir src && echo "console.log('Your cli is running.');" > src/index.ts
./node_modules/.bin/tsc
创建运行脚本
npm i typescript -g
npx tsc
"script": {
+ "build": "tsc"
}
npm run build
注册命令
node lib/index.js
mkdir bin && touch bin/node-cli-demo.js
require('../lib/index.js');
{
"name": "typescript-cli",
"version": "0.0.1",
+ "bin": {
+ "node-cli-demo": "./bin/node-cli-demo.js"
+ },
}
node-cli-demo
// Your cli is running.
自动监听文件变动
{
"script": {
+ "start": "tsc --watch"
}
}
npm start
总结
配置ESLint
安装依赖
npm i -D eslint @typescript-eslint/parser @typescript-eslint/eslint-plugin
设置配置
{
"root": true,
"parser": "@typescript-eslint/parser",
"plugins": [
"@typescript-eslint"
],
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
"rules": {
"no-console": "error"
},
// set eslint env
"env": {
"node": true
}
}
运行校验命令
{
"script": {
"lint": "eslint ./src --ext .ts"
}
}
忽略某些文件
node_modules
评论
PHPMQTT-CLIPHPMQTT 命令行工具
PHPMQTT-CLI是基于PHPMQTT提供的命令行工具,支持发布和订阅。___________________________|_\||||_\|\/|/_\__|__|||_)||_|||_)|
PHPMQTT-CLIPHPMQTT 命令行工具
0
clintPython 命令行工具
Clint是一个包含了用于开发命令行应用的工具集合模块。它支持高亮,但是在会话为TTY终端的时候可以自动识别,而不会去渲染。拥有非常棒的纵向输出,可选择是否自动扩展列。参数使用起来非常简单。特点:文档
clintPython 命令行工具
0
gWhispergRPC 命令行工具
gWhisper是一个gRPC命令行客户端。它允许从命令行调用gRPCCalls,支持tab-completion并将回复格式化为人类可读的格式。主要特点是:Reflection支持(不需要proto
gWhispergRPC 命令行工具
0
TptoolThinkPHP命令行工具
Tptool是一款基于ThinkPHP的命令行工具,提供快速创建项目、控制器、模型和视图文件等功能,简少了复制粘贴和寻找文件的过程。经常需要用ThinkPHP开发项目,总感觉手动创建控制器、模型、视图
TptoolThinkPHP命令行工具
0
xNode实用 NodeJs 工具
xNode实用nodeJs工具。 团队内部使用的一些实用nodeJs工具与expressJs实现方案,特分享与开源者共勉。 工具文档在迭代和完善中,尽情期待.
xNode实用 NodeJs 工具
0