JavaScript命令行工具是基于Node.js在终端运行的可执行程序,需配置shebang、package.json的bin字段,用npm link测试,借助commander等库解析参数,最后通过npm publish发布。

JavaScript命令行工具,就是用JavaScript写的、能在终端里直接运行的小程序,比如 eslint、create-react-app 或 npm 本身。它们不是网页里的脚本,而是借助 Node.js 在系统命令行中执行的可执行程序。
核心前提:Node.js 环境必须就绪
没有 Node.js,就跑不了 JS 命令行工具。确认已安装:
- 终端输入
node -v和npm -v,能看到版本号 - 如果没装,去 nodejs.org 下载 LTS 版本安装即可
写一个最简命令行工具(Hello World)
新建文件夹,初始化项目:
mkdir my-cli && cd my-cli
npm init -y
创建主文件 index.js:
立即学习“Java免费学习笔记(深入)”;
#!/usr/bin/env node
console.log('Hello from CLI!');
关键点:
第一行 #!/usr/bin/env node 是“shebang”,告诉系统用 node 执行这个文件,缺了它,Linux/macOS 下无法直接运行。
在 package.json 中添加 bin 字段:
"bin": {
"mycli": "./index.js"
}
然后全局链接测试:
npm link
之后任意目录下输入 mycli,就能看到输出 Hello from CLI!。
让工具接收参数和选项
纯 console.log(process.argv) 能看到原始参数数组(前两个是 node 路径和脚本路径),但更推荐用现成库简化处理:
-
commander:轻量、API 清晰,适合大多数场景 -
yargs:功能强,自动生帮助文档、类型推导好
例如用 commander:
npm install commander
// index.js 中:
const { program } = require('commander');
program
.option('-n, --name', 'your name')
.parse();
console.log(`Hi ${program.opts().name || 'there'}!`);
运行 mycli -n Alice 就会输出 Hi Alice!。
发布与分发
想让别人也能 npm install -g your-cli 使用?只需:
- 确保
package.json的name字段唯一(查 npm registry 是否重名) - 登录 npm 账号:
npm login - 发布:
npm publish
注意:bin 字段指定的文件要有可执行权限(Linux/macOS 下 chmod +x ./index.js,Windows 通常不用);入口文件要带 shebang;版本号别重复。
基本上就这些。不复杂,但几个关键点——shebang、bin 字段、npm link 测试、参数解析库——容易忽略,补上就稳了。











