构建一个 CLI 工具
前言
CLI(command-line interface 命令行界面)是指在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。
NPM是随同NodeJS一起安装的包管理工具,能解决NodeJS代码部署上的很多问题,常见的使用场景有以下几种:
•允许用户从NPM服务器下载别人编写的第三方包到本地使用。
•允许用户从NPM服务器下载并安装别人编写的命令行程序到本地使用。
•允许用户将自己编写的包或命令行程序上传到NPM服务器供别人使用
前置准备
1. 开发环境
- Node 环境 (必须)
- VS Code 开发工具 (非必须,你可以使用你喜欢的开发工具)
1.1 安装 Node
请安装 Node(>v6.5),这还是很简单的,访问 Node 官网 下载推荐版本,当前应该是 8.11.1。
之后的安装全是下一步就可以了。
1.2 安装 VS Code
同样访问 Visual Studio Code 官网,下载安装即可。
2. 注册 NPM 账号
访问 NPM 官网 ,点击 Sign up 字样,输入邮箱用户名密码就可以完成创建了,注意这里的 Username 和 Password 将用于后续登录和发布包。Public Email 用于接收推送邮件。
详细操作
1. 创建 NPM 项目
1.1 新建一个空文件夹
运行命令行,切换到你想存放文件的目录,执行新建文件。如:
1 2 3 4 |
|
1.2 新建一个 NPM 项目
在刚刚的目录下执行 npm init
,其中注释为我添加的说明。
1 2 3 4 5 6 7 8 9 10 11 12 |
|
程序会停在这里,让你输入项目名称,这个名称也是后面要上传到云上的包名,所以不允许和现有包名类似或者重名,所以你们可以像我这样在后面加上自己的名字,这是一个学习 demo,所以不需要太纠结于命名,后续你们开发自己的工具时,再认真想一个名字就好。
1 |
|
这里需要输入程序的初始版本号,默认值直接回车就可以了。
展开源码
1 |
|
这里写上简介.
1 |
|
这里是程序的主入口文件,我们先选默认值,后续这些值都是可以修改的。用于发布插件,我们这里是编写一个工具,会使用到的是 bin,详见下文。
|
包存放的 git 地址,默认为空。
1 2 |
|
输入关键词和作者。
1 |
|
添加开源许可证,MIT,指可随意使用和修改.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
|
这里确认创建,一个 NPM 项目就创建成功了。
2. 配置程序入口
我们使用 vscode,打开 d:/jr-web
,当前的目录结构是:
1 |
|
因为本次教程是为了给我们演示,如何构建一个工具,而不是插件,所以我们打开 package.json
做一点点的修改。
1 2 3 4 |
|
前面数字表示行数,+ 表示增减,- 表示删除。这里的 onitest,是我们实际使用工具的时候执行的命令。
小结:如果是插件的话,入口文件就是 main 所定义的;如果是工具的话,入口文件就是 bin 所定义的。
未完待续......
参考文件:
NPM 使用介绍 | 菜鸟教程
20分钟掌握前端编写 CLI 工具_codebay118的博客-CSDN博客
构建一个 CLI 工具相关推荐
- 手把手带你撸一个cli工具
你有没有遇到过在没有vue-cli.create-react-app这样子的脚手架的时候一个文件一个文件的去拷贝老项目的配置文件.最近,笔者就在为组里的框架去做一套基本的cli工具.通过这边文章,笔者 ...
- 20分钟掌握前端编写 CLI 工具
什么是CLI CLI(command-line interface 命令行界面)是指在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执 ...
- 你没见过的Burpsuite骚操作——拦截CLI工具的流量
介绍 Burp Suite,mitmproxy都是非常有用的HTTP代理工具.它们不仅仅用于渗透测试和安全研究,也用于开发.测试和API研究上.实际上,我自己现在更多的是用Burp来进行调试和学习,而 ...
- 通过CLI工具构建一个Vue.js程序
使用CLI工具之前需要用户对Node.js和相关构建工具有一定程序的了解. CLI是构建一个快速而规范的Vue.js项目的重要工具.为了让读者能够快速地学会使用CLI工具,下面直接使用CLI进行项目的 ...
- SDKMAN - 一个用于轻松管理多个软件开发工具包的CLI工具
转载来源:https://www.ostechnix.com/sdkman-a-cli-tool-to-easily-manage-multiple-software-development-kits ...
- 不借助idea开发工具构建一个Javaweb项目
不借助idea开发工具构建一个Javaweb项目 目录结构 webappsroot|----------WEB-INF|----------classes(存放字节码)|----------lib(存 ...
- 如何构建一个在线绘图工具:Feakin 是如何设计与构建的?
高中,读过几本 3D 图形编程相关的书.怎么说呢,自那以后,图形学相关的东西,都不在我的兴趣范围里了.直到最近,我重新燃起了一点兴趣: 架构治理工具 ArchGuard 依赖于「图即代码」,用于生成架 ...
- Nest的基本概念,以及如何使用Nest CLI来构建一个简单的Web应用程序
Nest是一个用于构建高效.可扩展的Node.js服务器端应用程序的框架.它是基于Express.js构建的,并且提供了多种新特性和抽象层,可以让开发者更加轻松地构建复杂的应用程序. 本文将介绍Nes ...
- 使用node.js构建命令行工具
工具说明 inquirer.js:一个封装了常用命令行交互的node.js模块,通过该模块可以很方便地构建一个新的命令行应用. shell.js:跨平台的unix shell命令模块. Node版本: ...
- xampp去运行php文件_从0开始构建一个属于你自己的PHP框架
如何构建一个自己的PHP框架 为什么我们要去构建一个自己的PHP框架?可能绝大多数的人都会说"市面上已经那么多的框架了,还造什么轮子?".我的观点"造轮子不是目的,造轮子 ...
最新文章
- R语言使用caret包对GBM模型进行参数调优实战:Model Training and Parameter Tuning
- docker,mysql,wordpress搭建个人博客
- 【白话机器学习】算法理论+实战之PCA降维
- hdu 1023 大数 卡特兰数
- python 画布 保存_Python Tkinter使用PIL将画布保存为图像
- 大四课程设计之基于RFID技术的考勤管理系统(四)Qt界面设计
- ubuntu man命令彩色高亮显示
- mybatis接口中的方法重载_MyBatis底层实现原理: 动态代理的运用
- 数字化定量分析_制造业走向数字化:企业以提高劳动生产率来优化供应链管理...
- 杭电(杭州电子科技大学)可视计算基础大作业:绝地求生吃鸡预测
- sqlmap挂马命令
- 华师大计算机在线作业,华东师范大学计算机考研复试机试习题
- 码流格式: Annex-B, AVCC(H.264)与HVCC(H.265), extradata详解
- torch.bmm()和torch.matmul()函数的用法和区别,矩阵相乘
- x must be 1d
- tinymce自动实现斑马纹表格
- 在html文件中url称之为什么,html+css网页设计复习题
- Office 文档解析 文档格式和协议
- 淘宝优惠券查询API接口
- 集线器、网桥、交换机