制作一个基于nodejs的命令行工具

这是我个人的nodejs命令行工具开发和学习过程,总结起来留作记录和查询

例子

我们编辑bin/sum-cli.js写一点小脚本,计算2个值之和,代码如下:

1
2
3
4
5
6
#!/usr/bin/env node
const argv = process.argv.slice(2);
sum(argv[1], argv[2]);
function sum(a, b){
console.log(a + b);
}

#!/usr/bin/env node 的介绍请看最后小知识

npm bin

本文的关键,设置bin,让npm链接你的脚本到全局,我们在package.json中添加

1
2
3
bin: {
sum: 'bin/sum-cli'
}

执行

1
npm link

npm link可以直接链接到你的全局node_modules中,这样我们就不用通过npm install

开始使用我们的命令吧

1
2
sum 1 2
#result 3

到此,我们已经成功完成一个脚本了

其它一些可能遇到的小知识点(也许这是本文中最有用的几点)

  • 如何在 bin 中开启 harmony 模式
    文件第一行处加入:

    1
    #!/usr/bin/env node --harmony

    这是 linux 脚本中指定脚本的解释程序,我们这里表示用node –harmony解释我们的脚本,自然就能开启 harmony 模式了

  • 命令行框架
    yargs
    Commander
    这2个功能强大,而且齐全,可作为开发主力使用

minimist 作者本次使用的命令行参数解析工具
拥有以下优点:
0依赖,超轻量,是你制作一个项目时,命令只作为辅助时的良好选择