跳到主要内容
CNode

如何创建一个node命令行工具?

社区
Kkingapple发布于 12 年前最后回复 12 年前
1264770

找不到头绪。。。

查看回复

回复 (12)

K
kingapple#1212 年前
引用 yaochun交互式命令行工具 准确地说: REPL模式(Read Evaluate Print Loop,输入 求值 输出 循环)

@yorkie 文章图片

如何让自己的node包 install后,也自动生成.cmd文件呢?

K
kingapple#1012 年前
引用 yaochun交互式命令行工具 准确地说: REPL模式(Read Evaluate Print Loop,输入 求值 输出 循环)

@yorkie 有bat的话,默认会用Node.exe来解析js,否则会用系统默认解释器的,这里使用了M$的,所以报错了。。。

Y
yorkie#912 年前
引用 yaochun交互式命令行工具 准确地说: REPL模式(Read Evaluate Print Loop,输入 求值 输出 循环)

@yaochun 输入/输出不就是交互么,求值代表是交互之下的计算机运算,循环指的是整个交互过程,跟web/native交互一样,我觉得没什么不准确的

Y
yorkie#812 年前
引用 yorkie你可以创建这样一个文件: 然后你可以: 观察过每一个输出你就能发现所谓的命令行工具其实——解析process.argv里面的内容 然后做出相应的反应。 你可以手动解析,也可以使用一些modul...

@kingapple 这个是因为windows下有两个.js文件的运行环境, 一个是JScript,一个是node,我想windows默认使用前者,所以才会报错console未定义,而且源也写了是Microsoft JScript. 我对windows不是特别熟,如果是linux下需要在你的cli.js的头上加:

#!/usr/bin/env node

来指定脚本语言的运行环境,你需要自己google一下,对bat也不是特别熟悉,应该是类似可执行脚本(很别扭的说法)?这个文件你应该可以在windows类似/usr/bin的目录下找到的

Y
yaochun#612 年前

####交互式命令行工具

准确地说:

REPL模式(Read-Evaluate-Print-Loop,输入-求值-输出-循环)

Y
yorkie#112 年前

你可以创建这样一个文件:

// cli.js
console.log(process.argv);

然后你可以:

$ node cli a

$ node cli a b

$ node cli --options

观察过每一个输出你就能发现所谓的命令行工具其实——解析process.argv里面的内容 然后做出相应的反应。 你可以手动解析,也可以使用一些module来简化你的代码,比如minimistcommander.js

还有另外一种类型的命令行工具,叫交互式命令行工具,如果你在运行node时,不load任何脚本的话,node就是一个这样的CLI,比如:

$ node

> 1 + 2
3

要写出这样的工具,需要使用official module: repl,例子在官方文档写得很清楚了。

参与回复

登录后即可参与回复。登录