找不到头绪。。。
12 回复
你可以创建这样一个文件:
// cli.js
console.log(process.argv);
然后你可以:
$ node cli a
$ node cli a b
$ node cli --options
观察过每一个输出你就能发现所谓的命令行工具其实——解析process.argv
里面的内容 然后做出相应的反应。
你可以手动解析,也可以使用一些module来简化你的代码,比如minimist和commander.js
还有另外一种类型的命令行工具,叫交互式命令行工具,如果你在运行node时,不load任何脚本的话,node就是一个这样的CLI,比如:
$ node
> 1 + 2
3
要写出这样的工具,需要使用official module: repl,例子在官方文档写得很清楚了。
@kingapple 你只需要在package里面加入:
{
"bin": {
"cli name you expect": "the path of cli source file"
}
}
npm会自动帮你完成背后的一系列操作
@kingapple 这个是因为windows下有两个.js文件的运行环境, 一个是JScript,一个是node,我想windows默认使用前者,所以才会报错console未定义,而且源也写了是Microsoft JScript. 我对windows不是特别熟,如果是linux下需要在你的cli.js的头上加:
#!/usr/bin/env node
来指定脚本语言的运行环境,你需要自己google一下,对bat也不是特别熟悉,应该是类似可执行脚本(很别扭的说法)?这个文件你应该可以在windows类似/usr/bin的目录下找到的