Loading [MathJax]/jax/input/TeX/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >20分钟掌握前端编写 CLI 工具

20分钟掌握前端编写 CLI 工具

原创
作者头像
serena
修改于 2021-08-03 06:56:04
修改于 2021-08-03 06:56:04
2.9K00
代码可运行
举报
文章被收录于专栏:社区的朋友们社区的朋友们
运行总次数:0
代码可运行

作者:王高垒

什么是CLI

CLI(command-line interface 命令行界面)是指在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(CUI)。

  • 典型的CLI界面:

GUI(Graphical User Interface 图形用户界面)是指采用图形方式显示的计算机操作用户界面。

  • 典型的GUI界面:

Why CLI?

自古软件设计这个武林有两大流派,其中有一个是”CLI“,另外一个是”GUI“。它们一个为了普渡众生,一个为了提高内力,虽然在GUI出现之前,CLI独步武林。但是随着科技的发展,GUI后发致人很快就一统江湖。但是现在谁是天下第一已经不重要了,重点是如何学会用这两种武术提高自己,在合适的情况下用合适的解决方法。下面是我的理解:

作为互联网深度沉迷患者,很多体验是离不开GUI软件的,比如工作邮件,使用foxmail的GUI界面,我可能只需要点几下鼠标敲几下键盘就可以完成一次工作汇报。

但是作为前端资深复制粘贴工程师,也同样离不开CLI工具,在一个项目完成后,我用配置好的自动化软件(比如gulp),我只需要敲一个命令就可以完成上线前的准备。

到这里各位看官应该懂了,

  • CLI更节省计算机资源,提高生产效率。因为不需要处理图形界面,所以开发成本低。适合面对各种geek向的码农。
  • GUI用户学习成本更低,体验更好,生产效率相对较低。开发成本高。适合面对普通互联网用户。

在这里不得不提一下,之前做的基于nw.js的页面检查工具,虽然很厉害,但是启动太慢了加上界面交互浪费了太多精力没有抓住用户的“刚”,所以从效果来说并不是特别好:(

到这里,如果你依旧对前端如何构建一个CLI感兴趣,请跟我一起,10分钟打造一个基于nodejs的CLI工具吧。 在完成一个命令行工具之后,javascript这种浏览器语言,终于完成全产业链(从浏览器到桌面软件再到CMD工具)的试练,成为了武林之巅,也就是世界上最好的语言 :)

开始动手

  • 配置环境

这次我们是基于nodejs来实现一个CLI工具,nodejs环境根据官网的文档一步步说明就好,NPM在公司内部需要配置代理。

  • 初始化项目配置文件 package.json

进入开发目录,执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm init

将会创建 package.json和默认的配置。当然手动创建也没有问题。 具体配置说明 传送门>

  • 创建和配置主入口文件

在package.js文件中,需要新增

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
"bin": {
    "node-cli": "bin/index.js"
  }

其中node-cli是需要执行的命令名,bin/index.js是命令所调用的文件

  • 调试 到此,准备工作已经完成了,接下来我们在index.js文件中写入 console.log('my first cli');

打开命令行工具,进入当前当前开发文件夹,输入

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
bin/index.js

则会输出my first cli

但是这样有些麻烦,我们如何像发布后一样,直接输node-cli命令就可以调用我们的主文件呢? 我们需要在开发目录执行

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm link

就可在目前的全局环境中创建node-cli命令,成功以后,你就可以在本机任何目录执行node-cli

  • 一些包推荐 在开发命令行过程中,我们会碰到各种问题,比如fs模块的pomise化、用户命令的复杂交互、友好的版本升级提示等等。利用npm当中的成熟库会是一个好方法,推荐几个库.
  • 通用CLI构建

看了这么多,也许有点迷糊?基于上面的步骤,有一个通用的CLI项目目录,集成了几个推荐的包,在clone之后迅速开始一个CLI工具的构建:

传送门 >

看个成品

前一段时间做了一个TG-CLI工具,大家在实现自己的CLI工具时,可拿来参考。 主要用来搭建互娱网站系统内的PC和移动专题,并根据用户输入配置页面内的基本元素,如注释、SEO信息、上报代码,并根据配置自动配置gulp,实现自动压缩、分离、补全SEO信息等。

主要有这些功能:

  • 用户自主配置参数
  • 生成规范化目录结构
  • 自动生成配置文件
  • 命令包装
  • 版本检查

使用预览:

传送门:TG-CLI

在实际编写过一个CLI工具之后,我觉得除了让电脑爆炸的功能以外,什么都能实现 :) 大家多多交流:)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Nodejs】326- 从零开发一个node命令行工具
命令行工具(Cmmand Line Interface)简称cli,顾名思义就是在命令行终端中使用的工具。我们常用的 git 、npm、vim 等都是 cli 工具,比如我们可以通过 git clone 等命令简单把远程代码复制到本地。
pingan8787
2019/08/23
2.1K0
【Nodejs】326- 从零开发一个node命令行工具
如何快速开发 CLI,Oclif 了解一下
CLI(Command Line Interface)命令行界面是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。也有人称之为字符用户界面(character user interface,CUI)。
阿宝哥
2020/02/18
3.6K1
如何快速开发 CLI,Oclif 了解一下
用 npm scripts 来构建前端项目的尝试
最近读了 Why I Left Gulp and Grunt for npm Scripts。读完后,觉的这文章写的相当不错,就决定尝试下。
前端GoGoGo
2018/08/24
1.5K0
快速入门MongoDB:适合前端开发者的指南
你好,我是喵喵侠。作为前端开发者,在学习Node.js时,你可能会接触到各种数据库技术。而在这些数据库中,MongoDB是一种非常适合初学者的NoSQL数据库。它不仅简单易用,而且与JavaScript/JSON格式的天然兼容性使得它在Node.js开发中非常受欢迎。在这篇文章中,我将从零开始,逐步教你如何安装、配置MongoDB,并通过Node.js与之交互,进行简单的增删改查操作。相信看完你就能立马学会。
喵喵侠
2024/08/22
3520
快速入门MongoDB:适合前端开发者的指南
快速上手最新的 Vue CLI 3[每日前端夜话0x5B]
翻译:疯狂的技术宅 原文:https://blog.logrocket.com/getting-started-with-the-new-vue-cli-3-43bcbe1ae759
疯狂的技术宅
2019/05/10
1K0
快速上手最新的 Vue CLI 3[每日前端夜话0x5B]
2023版漏洞评估工具Top10
前言 对于发现资产中已知漏洞、配置不当等问题的工具,大家习惯性称之为“漏洞扫描”工具,但随着技术演进,很多工具越来越智能,逐渐具备分析总结能力,因此将它们称为“漏洞评估”工具似乎更准确。 大多数漏洞评估工具都能覆盖常规漏洞,例如OWASP Top10,但一般都各有所长。常见的区分维度包括部署灵活性、扫描速度、扫描准确度以及与流程管理、代码开发等平台的整合性。如果不考虑license的限制和成本,很多团队都会选择同时部署多款工具。本文推荐的开源工具能与主流的流程管理平台集成,输出包含优先级的处置分析报告
FB客服
2023/02/24
1.8K0
2023版漏洞评估工具Top10
使用npm+gulp+browserify网页前端开发
本文的目的在于使用npm进行js类库依赖管理,同时精简html中繁杂的<script>导入。
pollyduan
2019/11/04
1.1K0
在MacOs上用Docker开发
该文章介绍如何使用Docker在Mac上构建和运行Node.js应用程序。首先,介绍了Docker的基本概念和优势,然后详细说明了在Mac上使用Docker的开发流程。包括拉取Docker镜像、运行容器、管理容器和容器路径等。最后,探讨了Docker在软件开发和部署中的重要性,以及Docker在Mac上的实际应用场景。
花落花飞去
2017/12/27
4.2K0
一文搞懂Kubernetes资源管理工具-KUI
Hello folks,我是 Luga,今天我们来分享一下关于 Kubernetes 资源管理的工具-KUI,全称为“K ubernetes U ser Interface”。作为一款 Kubernetes 工具的集合,KUI 旨在为管理 Kubernetes 资源提供一种更直观和可视化的方式。
Luga Lee
2023/04/28
1.7K1
一文搞懂Kubernetes资源管理工具-KUI
使用.Net Core编写命令行工具(CLI)
  命令行工具(CLI)是在图形用户界面得到普及之前使用最为广泛的用户界面,它通常不支持鼠标,用户通过键盘输入指令,计算机接收到指令后,予以执行。
leon公众号精选
2022/04/27
9670
使用.Net Core编写命令行工具(CLI)
在Ubuntu 15.04上安装和使用Scientific Software GNU Octave
什么是GNU Octave? Octave是一个科学应用程序,它使用Matlab类似的解释高级语言进行数值计算和模拟。 它提供解决线性和非线性问题的功能,可以将结果绘制为图形,并提供数据操作和可视化功能。 GNU Octave提供交互式命令行界面和GUI界面,但也可用于非交互式脚本进行数据处理。
子润先生
2021/06/15
9690
浅入vue脚手架 手把手教你撸一个简单脚手架
整个vue init大致流程如我上图所示,应该还是比较好理解的。这里我大致阐述一下大致的流程。
饼干_
2022/08/07
1.5K0
浅入vue脚手架 手把手教你撸一个简单脚手架
高效编写微信小程序-你还在手动创建新项目吗?
前言 微信小程序是一个工程,就和盖房子一样,打好了地基,才能保证后续工程师建立在可靠牢固的基础上。 笔者需要经常新建项目,每次都要重复“修改项目结构 -> 从老项目中复制粘贴文件 -> 删除一些老项目
腾讯ISUX
2018/06/29
1.6K0
【干货】打造自己的web前端工作流(一)--- 交互的命令行工具模板篇
前言 web前端领域技术日新月异,技术栈也不断丰富,在日常工作中涉及到的内容也不断增加,一个前端项目从开发到发布涉及的步骤也很多,很多重复工作内容,因此我们需要开发一些工作来减少这些工作量---工作流。工作流现在也存在很多解决方案,大都是采用GUI方式+自定义脚本方式,相比GUI的方式很多人更爱命令行的的方式,轻量化,可以方便自定义开发,更好适应现有业务的情况。 本文章目的,基于一个命令行模板工具,循序渐进的告诉读者,开发一个命令行工具,会用到哪些现有的轮子,如何让你的工具变得丰满起来。同时我也会简要
腾讯NEXT学位
2018/12/04
2.9K0
【干货】打造自己的web前端工作流(一)--- 交互的命令行工具模板篇
【愚公系列】《循序渐进Vue.js 3.x前端开发实践》043-VUE CLI工具入门
在现代前端开发中,构建高效、可维护的应用程序是每个开发者追求的目标。Vue.js 作为一个流行的前端框架,凭借其简洁的语法和灵活的设计理念,受到了广泛的欢迎。而 Vue CLI(命令行工具)则为我们提供了一个强大的工具集,旨在简化 Vue 项目的创建、开发和部署流程。
愚公搬代码
2025/06/02
670
【愚公系列】《循序渐进Vue.js 3.x前端开发实践》043-VUE CLI工具入门
前端开发使用工具 gulp
gulp是基于流的前端构件化工具。gulp是自动化项目的构建利器;不仅能对网站资源进行优化,而且在开发过程中很多重复的任务能够使用正确的工具自动完成。同时使用非常简单,学习成本低。这个压缩工具也是前端必学的的工具。
润森
2019/09/03
1.5K0
前端开发使用工具 gulp
一个很方便的pip换为国内源的开源小项目- updata_pip_Domestic-mirrors
updata_pip_Domestic-mirrors 是一个开源的Python工具,旨在帮助Python开发者轻松快捷地在pip命令中切换为国内源(如阿里云、清华大学、中国科技大学等镜像源),以加速Python包的下载与安装过程。该工具通过PyInstaller封装成了独立的可执行文件,无需用户安装Python环境即可直接使用,同时利用PySimpleGUI库创建了直观易用的图形用户界面(GUI),让操作更加简便快捷。
洛水流光
2024/09/26
2460
一个很方便的pip换为国内源的开源小项目- updata_pip_Domestic-mirrors
10分钟开发一个npm全局依赖包(上)
今天在逛网页的时候看到了一个古诗词的API,然后突发奇想,用了10分钟的时间做了一款npm全局依赖包。你可以使用npm install -g pome-cli来先玩一玩。有好东西当然要跟大家分享一下啦,现在从0开始给大家简绍打造这款全局依赖包。
kai666666
2020/10/17
1.5K0
vue实践之采用vue-cli3.x创建项目
vue.js 官方文档 https://cn.vuejs.org/v2/guide/
陨石坠灭
2020/05/22
6550
【5分钟玩转Lighthouse】Theia IDE
Thiea IDE 是一套构建基于 Web 的云端 IDE 的开源框架,是一个可扩展的平台,具备良好的多语言支持能力,并支持 VS Code 扩展。
谛听
2020/10/08
3.1K4
【5分钟玩转Lighthouse】Theia IDE
推荐阅读
相关推荐
【Nodejs】326- 从零开发一个node命令行工具
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验