手机版

Node.js编写命令行界面示例详解

时间:2021-09-04 来源:互联网 编辑:宝哥软件园 浏览:

为什么是Node.js?

编写CLI常用的语言有python、ruby、perl、Node.js等。为什么选择Node.js作为CLI的语言编写工具?原因有三:

更加熟悉Javascript语言的主要原因是npm完善的生态系统,与npm OS的包管理机制无关。目前,npm官方有475,000个三方包可用,所以你可以轻松使用一些已经编写好的好轮子来帮助你快速开发。另一方面,你不需要考虑跨平台的安装问题,比如OSX的家酿,Debian的Fitness,CentOS的yum。如果CLI是用shell或其他语言编写的,则需要兼容各主流OS,并分发到不同的平台。

观看演示

注意:这里的徽标使用npm包图来帮助生成

国家预防机制相关国家牵头倡议的基本原则

如何让Node.js编写的包可执行?其实很简单,只需要在package.json中添加一个bin字段,模块发布到npm后,开发者在安装这个包的时候会检查是否有bin字段,如果有bin字段,会使用软链接创建可以全局使用的命令。

如果模块是全局安装的,将在类似unix的系统的/usr/local/bin目录中创建一个软链接,在windows系统的c : \ user \ username \ appdata \ roaming \ NPM目录中创建一个软链接。

如果模块安装在本地,将在。/node_modules/。项目中的bin目录。

配置的package.json如下:

…' description' : '一个命令行工具,旨在改进前端工程师工作流程',' main' :' lib/index.js ',' bin' : {'feflow' 3360 '。/bin/feflow'} … CLI基本命令设计

$ feflow - help一个命令行工具旨在改进前端工程师工作流usage : feflow[选项][命令] Commands: init选择一个脚手架来初始化项目。扫描-接收者扫描一个组并邮寄给接收者安装插件安装一个插件或Yeo mangerator . options 3360-版本,-[vv]打印版本并退出成功-帮助,打印此帮助并退出成功流程技术架构

Feflow分为三个模块,包括解析器命令行参数解析、核心命令和插件机制。设计插件的主要目的是保持整体功能稳定,避免频繁升级。同时开放能力,支持开发者访问,完善整体生态。

扫描仪的实现

在一个工程项目中,有各种各样的规范,比如项目命名规范、描述规范、目录结构规范、README.md规范、是否添加基础监控等等。写扫描器,扫描一个集团所有业务项目,列出不符合规范的仓库和场所,抓出责任人。最后通过邮件和预定任务发给相关同学,督促他们修改。扫描仪流程图如下:

首先,需要一个任务队列,其中存储了不同的扫描任务。每次扫描任务都依赖于相关的文件信息或Commit信息,因此需要调用Git代码提供的三方API来拉取文件信息。之后需要编写一个规则引擎,里面包含了大量与规范相关的检查工具,解析后将结果生成HTML格式的字符串。最后,调用邮件服务和调度任务服务来通知相关的开发人员。

插件机制设计

$ feflow install plugin #安装一个插件,并且- force强制安装$ feflow remove plugin #卸载一个插件。$ feflow list #列出了所有插件信息。$ feflow list plugin #列出了插件机制的实现

插件机制的实现包括两部分:插件注册机制和插件发现机制。Feflow要求插件从feflow-plugin-或generator-开始。作为一个特殊的插件,插件代码以npm包的形式存储和管理。当运行feflow install plugin命令时,它会通过npm的regsitry检查是否有插件。如果有,它会检查当前插件是否是最新版本。如果不是最新版本,提示用户是否更新。然后将插件下载到。主目录下的feflow目录(' C: \用户\用户名\。“feflow”目录)并将其写入配置文件。

本地模块注册机制

本地模块发现机制

国家预防机制登记处

Npm的查询服务网站:http://registry.npmjs.org/注册中心网站后面是模块名称。如果版本好,可以查询模块的详细信息,包括最新版本,从而判断模块是否需要更新。例如,最新版本的React可以由http://registry.npmjs.org/react/latest.获得返回的JSON对象具有dist.tarball属性,该属性由某个版本的压缩包地址共享。

Osenv方便地获取不同系统的环境和目录配置。figlet命令行cool Logo生成器meow命令行帮助命令封装了inquire强大的用户交互粉笔使命令行的输出显示带有颜色的easytable信息,用于提示升级包。分析minimlist用户输入的参数。执行shell命令clui进度条时遇到的问题。

1.在windows下,用户没有设置HOME环境变量,这导致了错误报告

解决方案:因为HOME环境变量在windows下默认不存在,所以不能直接使用。确定流程。platform===' win32 ',首先使用HOME变量,否则使用USERPROFILE变量;建议使用Osenv封装。

2.在OSX平台上运行feflow时出现错误: env 3360 node \ r :没有这样的文件或目录

解决方法:类unix系统的换行符是\n,而windows系统的换行符是\n\r.解决换行符问题。您可以添加。gitattributes文件在项目根目录下,设置* text eol=LF,这样提交git的时候就不会说LF转换成CRLF了。

以上就是本文的全部内容。希望对大家的学习有帮助,支持我们。

版权声明:Node.js编写命令行界面示例详解是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。