平均每个月帮节省你至少10%的时间,你还有理由不写实现命令行工具吗?
从零实现一个命令行工具
介绍:
本教程将带你从零实现一个命令行工具(command-line interface),对于你可能不理解的关键点,引(wo)入(xiang)外(tou)链(lan)让你“恍然大悟”。
具体实现效果如下:
实现一个简单的命令行工具
1.初始化和设置ShaBang
创建项目,在终端cd到当前路径,通过npm init
之后,目录中创建index.js
index.js
#! /usr/bin/env nodeconsole.log('hello cli')
然后,修改index.js的权限:
chmod 755 index.js
这样我们就能简化node index.js
这个命令,而变成:
./index.js
这里会输出“hello cli”
注意这里不要写成~~
index.js
和./index
~~,不然无效。
#! /usr/bin/env node
这是SheBang/HashBang,用于指定用node执行脚本文件。
2.修改package.json文件
在package.json
文件中添加bin
字段:
"bin": {"hello": "./index.js"}
hello
就是命令名,./index.js
就是地址。
执行npm link
命令,把命令和路径进行连接,命令行提示如下:
junking@JunkingdeMacBook-Pro-3973 node实现命令行工具 % npm link
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN node-cli-demo@1.0.0 No repository field.up to date in 0.964s
/Users/junking/.npm-global/bin/hello -> /Users/junking/.npm-global/lib/node_modules/node-cli-demo/index.js
/Users/junking/.npm-global/lib/node_modules/node-cli-demo -> /Users/junking/WebstormProjects/node实现命令行工具
这下,我们可以使用更简洁的命令了:
hello
顺便告诉你,你现在可以在终端的路径执行hello
命令了,不信你试试?
npm link用来在本地项目和本地npm模块之间建立连接,可以在本地进行模块测试。
其实到此位置,一个简单的命令行工具已经完成了,因为你可以执行hello命令来输出一段文字了。
升级!俺是一个实用性的命令行工具!
简化npm源的切换
发布过npm包的开发者应该都经历过,在npm中设置淘宝源可以加速下载速度,但是不能执行npm publish
来发布包。或许有你们像我一样经常进行繁琐的切换,那么长的命令还记不住。
现在,我们将这些简化到命令行工具中:
我已经将这个工具做好了,已经发布到npm中,下面开始使用吧!
npm install -g junking@1.1.0
命令:
junking npm源 设置npm源为官方源junking taobao源 设置npm源为淘宝源junking publish 发布包到npm官方
使用这些命令后,就不用再每次都来回地切换npm源啦!
具体的实现原理就是,通过node的child_process.exec()来执行对应的控制台命令,然后将命令封装起来,并利用yargs来配置命令行参数等等。
我觉得这个过程还是留给你自己来实现吧,思路已经告诉你了,自己动手实现印象深刻,如果仍有困难请在评论区留言,再决定是否要把分步步骤详细呈上。
平均每个月帮节省你至少10%的时间,你还有理由不写实现命令行工具吗?相关推荐
- 18 个终端命令行工具,绝对让你感觉自己像个10倍程序员
来自:掘金 作者:lcomplete 链接:http://33h.co/wquzt 终端是程序员的必备工具之一,10 倍程序员的终端跟普通程序员有何不同?本文将介绍许多牛逼且实用的开源工具,用上这些工 ...
- 能直接下载了!微软最爽命令行工具登陆Windows 10,GitHub标星已破4万6
乾明 发自 凹非寺 量子位 报道 | 公众号 QbitAI 微软正式放出命令行工具Windows Terminal. 这个在发布之际就引得开发者大呼"WoW!Awesome!My God! ...
- 命令行使用.so文件内的函数_如何使用SFC命令行工具修复Windows 10系统文件
当你的 Windows 10 出现随机错误.开机之后报错或组件无法正常工作等情况,很可能是一个或多个 Windows 文件丢失或损坏造成的.即便为了保证电脑能够正常运行,Windows 10 对自身做 ...
- 如何在redhat8里使用gcc命令_如何使用DISM命令行工具修复Windows 10映像
Windows 10 中内置了一个被称为 DISM 的「部署映像服务和管理」命令行工具,该工具从 Windows 8 便开始内置,直到 Windows 10. DISM 命令行工具可用于修复和准备 W ...
- dos命令行设置网络优先级_替代windows系统下cmd的10款命令行工具
喜欢用linux系统的或者从事开发编程的朋友可能会经常用到命令行工具,下面会整理一些windows下命令行工具. 1.powershell 系统自带 powershell 它可以说cmd的升级版.补充 ...
- 《现代命令行工具指南》10. 管理工具:在隔离环境中安装和运行 Python 命令行工具 - Pipx
好工具就是生产力,这是专栏<现代命令行工具指南>精讲的第 10 个命令行工具,欢迎品鉴. 很多强大的命令行工具都是用 Python 编写的,比如,poetry.trash-cli.bla ...
- 10 款更先进的开源命令行工具
Linux 诞生于 1991 年,我们熟知的 ls.cd.ps 等命令也出生于那个年代.虽然它们都是 30 年前的产物,但是我们现在依旧每天都在用这些命令. 也许是审美疲劳又或是好奇心作祟,你可曾好奇 ...
- windows使用linux命令行工具,替代Windows系统下cmd的10款命令行工具
喜欢用Linux系统的或者从事开发编程的朋友可能会经常用到命令行工具,下面会整理一些Windows下命令行工具. 1.powershell 系统自带 powershell 它可以说cmd的升级版.补充 ...
- 10个Linux 系统性能监控命令行工具
引言: 系统一旦跑起来,我们就希望它能够稳定运行,不要宕机,不出现速度变慢.因此,对于Linux 系统管理员来说每天监控和调试 Linux 系统的性能问题是一项繁重却又重要的工作.监控和保持系统启动并 ...
最新文章
- Per Johansson:经济学中自然实验和准实验 | 周日直播·因果科学读书会
- 每年的智能车竞赛赛道是如何产生的?
- 水电收费系统开发日志(一)
- python发送文件给微信好友_Python定时自动给微信好友发送天气预报
- Ubuntu文本编辑(vi和nano)命令
- 神州英才战略盈利竞争力总结
- java 获取当前月份的第一天_JAVA获取本月的第一天和最后一天
- (一)、http原理
- 教你玩转CSS的所有字体,走过路过不要错过!!!
- screen 断开 screen -r 不能进入断开的会话
- Mysql 零距离-入门(六)数据唯一约束性
- Android百度地图开发之开发第一个小应用,显示基础的地图页面
- 解决重启centos后resolv.conf总被清空的问题
- 2018年AI如何发展?普华永道做出了8点预测 | 报告下载
- python和java学哪个好-Python和Java该学哪个?还在纠结的你看过来呀~
- 编程也讲禅,您读过《金刚经》吗?——ADO.NET核心类的灭度与SQLHelper的诞生——十八相送(上)...
- [转载]jQuery操作Table学习总结
- 菜鸟的JavaScript自学笔记整理
- October cms-Plugins(插件-注册)
- brew - 切换为国内源