当前位置: 首页 > 后端技术 > Node.js

快速编写一个node命令行工具

时间:2023-04-03 10:59:31 Node.js

一、快速入门1.1背景:很多nodejs包都提供了命令行工具。我们也学学吧。1.2刀耕火种时代:环境:win32_X86nodejs:v5.9.1npm:3.7.3首先创建一个bat文件(cli-demo.bat),调用bat文件中的node命令执行对应的js文件(index.js):index.js内容:'usestrict';函数添加(args){varsum=0;args.forEach(function(number){varnum=+number;if(!isNaN(num)){sum+=+num;}})returnsum;}varargs=process.argv.slice(2);//处理参数varsum=add(args);console.log(sum);cli-demo.bat内容(与index.js同目录):@ECHOOFFSETLOCALSET"NODE_EXE=%~dp0\node.exe"IFNOTEXIST"%NODE_EXE%"(SET"NODE_EXE=node"::)::执行指定的js并传入参数"%NODE_EXE%""index.js"%*然后将bat文件路径添加到路径环境变量。在index.js的父目录下打开cmd,执行:创建bat文件,将bat路径添加到PATH中。过程有点复杂。幸运的是,npm可以帮助我们完成这些事情。2.npm和命令行工具首先初始化一个npm项目2.1package.json-bin配置【创建bat文件,将bat路径添加到PATH】这些固定的工作可以由npm帮我们完成。package.json中有一个bin字段配置:bin:{"commandName1":"path/to/executableFile1",//路径相对于package.json的目录可执行"commandName2":"path/to/executableFile2",}文件可以是js文件,也可以是不带扩展名的文本文件,文件开头第一行是"#!/usr/bin/envnode"。安装包时,npm会根据bin配置生成相应的脚本(bat或shell)。如果可执行文件的第一行不是“#!/usr/bin/envnode”,生成的脚本文件只是指向bin配置的可执行文件。2.2示例:Step1:创建package.json文件,配置bin字段。package.json:"bin":{"cli-demo":"./bin/cli-demo"}Step2:在package.json同级目录下新建一个bin目录,在其中添加一个cli-demo文本文件bin目录。./bin/cli-demo:#!/usr/bin/envnodeconsole.log('呵呵');Step3:发布包(前提是在控制台登录npm账号)npmloginnpmpublish如果没有错误提示,则说明发布包成功,之后就可以被其他人引用了。Step4:安装包npmi-gcli-demo查看安装目录下生成的脚本文件:cli-demo.bat@IFEXIST"%~dp0\node.exe"("%~dp0\node.exe""%~dp0\node_modules\cli-demo\bin\cli-demo"%*)ELSE(@SETLOCAL@SETPATHEXT=%PATHEXT:;.JS;=;%node"%~dp0\node_modules\cli-demo\bin\cli-demo"%*)文件内容为调用node执行bin配置的文件。Step5:执行命令cli-demo2.3npm有什么作用?A:根据bin字段配置生成脚本文件(window为bat,unix为shell)。脚本名称:等于bin字段的属性名脚本内容:调用节点名执行bin字段object属性值指定的文件B:将生成的脚本文件放在指定目录下全局安装:prefix/local安装:./node_module/.bin/3。扩展通常,一条命令由三部分组成:命令名、选项参数。NamingName:指定操作的命名Options:修改命令的操作行为Parameters:传递给命令操作的参数处理选项和参数可以使用其他库,如CommandJS。请参阅使用Node.js创建命令行工具npm-bin配置Command-lineutilitieswithNode.js