新建一个node命令的学习随笔(Mac环境下):
假如命令名是:mycmd
第一步:新建工程目录mycmd
1.进入目录,新建index.js
// index.js
// 告诉系统,下面这个脚本,使用nodejs来执行
#!/usr/bin/env node
console.log('hello world')
2.添加package.json的bin字段
//package.json
{
"name": "hello-test",
"version": "1.0.0",
"bin":{
"mycmd":"index.js"
}
}
第二步:执行复杂的命令
1.使用minimist包解析命令行参数
const minimist = require('minimist')
2.使用commander包处理交互操作
const program = require('commander')
第三步:发布/安装命令
1.本地全局安装
在工程目录下执行 npm link将当前的代码在npm全局目录下留个快捷方式,即创建一个软连接,npm检测到package.json里面存在一个bin字段,它就同时在全局npm包目录下生成了一个可执行文件
2.本地局部发布
npm i -D file:<你的脚本cli目录路径>,把它当成项目的依赖安装到node_modules里面去,如果安装成功,那么在项目的package.json你会看到多了一条依赖,这条依赖的值不是版本号,而是你脚本的路径。然后在node_modules里面会有一个.bin目录(cnpm安装的没有.bin目录),里面就存放着你的可执行文件
3.发布到npm后安装
#bash.sh
1. npm login
2. npm publish
3. npm install mycmd -g
通过’npm install mycmd -g’安装的命令在/usr/local/lib/node_modules/mycmd下