一个标准的 Node.js CLI 项目,使用最新的 NodeNext 模块标准。
createRequire 在 ESM 中安全导入 package.jsonnpc-play/ ├── src/ │ ├── cli.ts # CLI 主入口 │ ├── index.ts # 程序入口点 │ ├── utils/ │ │ └── logger.ts # 日志工具类 │ └── config/ │ └── default.config.ts # 默认配置 ├── dist/ # 编译输出目录 ├── package.json ├── tsconfig.json └── README.md
# 克隆项目
$ git clone https://cnb.cool/beilinmo/CNB-NightStar/npc-play.git
$ cd npc-play
# 安装依赖
$ npm install
# 编译 TypeScript
$ npm run build
# 清理构建产物
$ npm run clean
# 使用编译后的代码
$ npm start -- --help
$ npm start -- greet Yu
$ npm start -- greet Yu --title Mr
$ npm start -- version
# 开发模式(使用 ts-node)
$ npm run dev -- --help
$ npm run dev -- greet Yu
$ npm run dev -- version
# 构建项目
$ npm run build
# 链接到全局
$ npm link
# 现在可以在任意位置使用
$ npc-play --help
$ npc-play greet Yu
$ npc-play version
向某人问好,可选择添加称谓。
# 基本用法
$ npc-play greet <name>
# 添加称谓
$ npc-play greet Yu --title Mr
$ npc-play greet Alice --title Dr
# 禁用表情符号
$ npc-play greet Yu --no-emoji
# 详细输出
$ npc-play --verbose greet Yu
示例输出:
✅ Hello, Yu! 👋 ✅ Hello, Mr Yu! 👋
显示版本和系统信息。
$ npc-play version
示例输出:
npc-play v1.0.0 Node.js v18.17.0 Platform: linux-x64
-v, --verbose: 启用详细输出-c, --config <path>: 指定配置文件路径npm run build: 编译 TypeScript 到 dist/ 目录npm run dev: 使用 ts-node 运行开发模式npm start: 运行编译后的 CLInpm run clean: 清理构建产物npm test: 运行测试(待实现)NodeNext 是 Node.js 的新模块系统,它提供了:
.js、.ts 等扩展名createRequire在 ESM 中导入 JSON 的安全方式:
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const pkg = require('./package.json');
默认配置位于 src/config/default.config.ts,包含:
MIT License
Yu