导航:首页 > 程序命令 > node命令行参数

node命令行参数

发布时间:2022-11-26 17:13:24

㈠ 手把手教你使用nodejs编写cli(命令行)

前端日常开发中,会遇见各种各样的cli,比如一行命令帮你打包的webpack,一行命令帮你生成vue项目模板的vue-cli,还有创建react项目的create-react-app等等等等。这些工具极大地方便了我们的日常工作,让计算机自己去干繁琐的工作,而我们,就可以节省出大量的时间用于学习、交流、开发、 逛steam 。

但是有时候一些十分特别的需求,我们是找不到适合的cli工具去做的。比如说,你的项目十分庞大,你给项目添加一个新的路由,要经过 创建目录 -> 创建.vue文件 -> 更新vue-router的路由列表 这一趟流程,就算快捷键创建目录文件用得再熟悉,也比不过你一行命令来得快,特别是路由目录嵌套深,.vue文件初始化模板复杂的时候。

所以呢,何不为自己项目写一个cli?就专门做这些繁琐的活?

nodejs的cli,本质就是跑node脚本嘛,基本上每位前端er都会:

然后命令行调用

可以做得更逼真一点,我们在package.json里面的scripts字段上添加一下脚本名:

然后命令行调用:

但是,看到这里你肯定会说,人家webpack还有vue-cli都是“有名字”的!什么 vue-cli init app 、 webpack -p 的,多漂亮,看看这个命令行, node index.js ,还 npm run hello ,谁不会啊,丑不拉几的,怕又不是来水文章的哦?差评!!

别急啊各位大人,接下来就说说,如何给这个node脚本起个名字。

姑且,先把这个cli的名字命名为 hello-cli ,就是我们能够在命令行里面,输入 hello-cli ,然后它就打印一句 hello world ,没有 node 也没有 npm ,就是:

这样,你的第一个cli脚本就成功安装了,可以在命令行里面,直接敲你的cli名字,看看结果输出吧。

另外,如果你仅希望你的cli脚本仅在项目里执行,则需要在你项目里面新建一个目录,重复上述的操作,只是在第三步的时候,不要llink到全局里面去,而是使用 npm i -D file:<你的脚本cli目录路径> ,把它当成项目的依赖安装到node_moles里面去,如果安装成功,那么在项目的package.json你会看到多了一条依赖,这条依赖的值不是版本号,而是你脚本的路径。然后在node_moles里面会有一个.bin目录,里面就存放着你的可执行文件。

当然,这样安装的cli脚本,必须在项目的package.json的scripts字段上声明脚本命令,然后通过 npm run 的方式执行。

哦?这样子使用的话不就回到最最最开始的时候那种原始的 npm run hello 一样么。

是的,但是有质的区别。使用 node index.js 这种方式调用的话固然简单灵活,但是严重依赖脚本路径,一旦目录结构发生变动,写在scripts的命令就要更改一次;但是使用npm安装之后,本地的cli脚本就被拉到node_moles里面,目录结构变动对其影响不大。其次是不利于分享与发布,如果你想把你的cli脚本发布出去,那么有一个好听响亮的名字,比起在说明文档里面告诉使用者如何找到你的脚本路径再用node执行它,简直好上那么一万倍不是么?

这里也给我们提供了一个cli开发流程思路:

名字有了,输出也有了,看看我们跟那些大名鼎鼎的cli工具,在形式上还差点啥?对了,人家可以支持不同参数选项的,还可以根据输入的不同,产生不同的结果。

这样吧,我们给这个cli加一个功能,既然叫 hello-cli ,那不能只会 hello world 吧,必须要见谁就说 hello 才行:

虽然这个功能很简单,但是至少也是实现了“根据输入的不同,产生不同结果”的效果。

命令行上的参数,可以通过 process 这个变量获取, process 是一个全局对象而不是一个包,不需要通过 require 引入。通过 process 这个对象我们可以拿到当前脚本执行环境等一系列信息,其中就包括命令行的输入情况,这个信息,保存在 process.argv 这个属性里。我们可以打印一下:

打印结果:

可以看出,argv是个数组,前两位是固定的,分别是node程序的路径和脚本存放的位置,从第三位开始才是额外输入的内容。那么实现上面的功能就很简单了,只要读取argv数组的第三位,然后输出出来就可以了。

npm社区中也有一些优秀的命令行参数解析包,比如 yargs ,tj的 commander.js 等等

如果你想使用比较复杂的参数或者命令,建议还是用第三方包比较好,手写解析太耗精力了。

现在,你可以自由自在的写你自己的cli脚本了。
如果你希望写一个项目打完包自动推上git的cli,或者自动从git仓库里面拉取项目启动模板,那么,你需要通过node的 child_process 模块开启子进程,在子进程内调用git命令:

不仅是git命令,包括系统命令、其他cli命令都可以在这里执行。特别是系统命令,使用系统命令对文件目录进行操作,效率比fs高到不知道哪里去了。

社区上也有一些不错的包,比如阮一峰老师推荐的 shelljs

如果你不那么希望你的cli用起来那么“硬核”,希望更人性化一点,比如提供一些友好的输入、提示啊,给你的输出加点颜色区分重点啊,写个简单的进度条啊等等,那么你就需要美化一下你的输出了。

除了颜色这部分,不使用第三方包实现起来非常繁琐复杂,其他的功能,都可以试试自己写。
颜色部分使用了第三方包 colors ,这里就不演示了。
其他都是由nodejs自带的 readline 模块实现的。

绘制的思路跟canvas绘制动画一样,只不过canvas是清除画布,而命令行这里是通过 readline.clearScreenDown 清除输出。

这样,一个简易的,人性化的,带点点进度条动画的命令行cli工具就写好了,你也可以发挥你的想象力,去写一些更有趣的效果出来。

毕竟我们前端,有浏览器我们可以写动画,没了浏览器我们一样可以写动画。

㈡ nodejs怎么调用python命令行

调用python脚本(python脚本本身是传参数的)

这里插入一个题外话,下面这段是对python传参数的简单说明一下:
复制代码代码如下:

# -*-coding:utf-8 -*-
'''
需要模块:sys
参数个数:len(sys.argv)
脚本名: sys.argv[0]
参数1: sys.argv[1]
参数2: sys.argv[2]
'''
import sys
print u"脚本名:", sys.argv[0]
for i in range(1, len(sys.argv)):#这里参数从1开始
print u"参数", i, sys.argv[i]

㈢ 如何用命令行开启nodejs搭建web服务器

首先,需要安装nodejs,这个可以去官网下载,目前我本地安装的v0.12版本。

安装完成后可以通过命令行测试安装是否成功,输入:node -v,应该会显示当前安装node版本号。


本文中用到的模块,都是nodejs核心模块,不需要从外部下载,如果有需要,可以使用以下命令安装:npm install xxx。


开始
下一步,新建js文件,可以命名为server.js,代码如下:
var http = require('http');
var url = require('url');
var path = require('path');
var fs = require('fs');
var dir, arg = process.argv[2] || ''; // 命令行第三个参数,用来接收目录,可为空,相对当前server.js文件的目录名称


// 比如使用命令 node server debug,意思就是debug文件夹与server.js文件同级
// 且你想以debug文件夹启动web服务



http.createServer(function (req, res) {
var pathname = __dirname + url.parse(req.url).pathname;

㈣ nodejs 如何从命令行指定文件路径 和 输出路径

node运行时是可以加参数的例如:node a.js arg1 arg2 arg3
代码中var args = process.argv.splice(2)命令行参数

㈤ windows下安装配置node

https://nodejs.org/en/

安装完后在键盘按下【win+R】键,输入cmd,然后回车,打开cmd窗口。测试node是否安装好。

这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。
在我安装的文件夹【D:\node.js】下创建两个文件夹【node_global】及【node_cache】如下图:

在命令行执行:

接下来设置环境变量。“我的电脑”-右键-“属性”-“高级系统设置”-“高级”-“环境变量”

进入环境变量对话框,在【系统变量】下新建【NODE_PATH】,输入【D:\node.js\node_global\node_moles】,将【用户变量】下的【Path】修改为【D:\node.js\node_global】

点击确定就完成啦。

npm install -g cnpm --registry=https://registry.npm.taobao.org

㈥ node.js中argv 是什么作用

命令行传过来的其他参数

㈦ Node命令行工具如何接收数组参数

js的数组都有一个toString方法,变成数组中的元素加逗号这种方式,这样你就可以完全把数组当字符串用了,在接收页面用arr.split(",")就可以将字符串再转回为数组

<script>
var arr=[1,23,34,5];
var strArr = arr.toString();
document.write(strArr);
var getArr = strArr.split(",");
for(var i=0;i<getArr.length;i++){
document.write(getArr[i]+"|");
}
</script>

㈧ minimist轻量级的命令行参数解析库

nodejs的命令行参数解析工具

㈨ 如何基于nodejs开发一个命令行工具

效果预览

npmuninstall-gzwj

然后再安装即可。

发布与升级

当我们的工具开发完成后,如何发布到社区,如何提供给其他开发者使用,这是我们的最后一步。npm包的发布很简单,原本只需要在包根目录执行:npm publish命令即可。但如果你是第一次发布应用,需要解决好账号登录的问题:先执行npm adser命令,依次输入用户名、密码和邮箱登录,然后通过npm whoami命令确认登录是否成功。万事俱备之后,再执行npm publish命令,你的包就可以发布到社区与众多开发者共享了!

最后,升级就简单了。本地增加好新的功能,测试通过之后,修改版本号之后,执行:npm publish等待完成即可。

PS:最好给每个包都增加一个README.md文件,写入包的作用,使用方法,更新日志等等。方便使用者查阅。完美~~

阅读全文

与node命令行参数相关的资料

热点内容
php邮箱验证代码 浏览:404
光猫伪装命令 浏览:175
安卓高端机为什么都用曲屏 浏览:419
老电影大全 战争片 浏览:971
有没有小电影得网址网站 浏览:378
奥特曼电影排行榜前十名 浏览:580
安卓光遇账号过期怎么找回 浏览:476
现金宝宝app在哪里能下载 浏览:277
二战女教师慰安妇电影 浏览:270
传说对决录像在哪个文件夹 浏览:136
不用充钱就能看电视剧的网站 浏览:562
卧式空气压缩机 浏览:137
合川排课管理系统源码 浏览:439
女主被用铁链囚禁的小说 浏览:196
两个小时的爱情电影 浏览:864
php电商下单并发处理 浏览:242
送牛奶女电影名 浏览:468
港片有功物名的别片有哪些 浏览:246
s8安卓9如何开启多屏应用 浏览:39