Tag: 命令行界面

如何为Vorpal.js提供多字参数

使用这个: vorpal .command("echo <somewords>") .description("Outputs 'what ever you typed") .action(function (args, callback) { this.log(args.somewords); callback(); }); 我可以input:回声“一些文字回声”,并按预期工作,但回声“其他文字”只是回声的“一些 有没有办法告诉选项,包括该行的其余部分 一种使用“或”来包装多词参数的方法 TIA

在没有“脚本”条目的情况下实现“npm run x”行为?

要在已安装的node_modules的“上下文”中运行节点命令,可以在package.json的scripts字段中input一个条目。 例如: … "scripts": { "test": "mocha –recursive test/**/*.js –compilers js:babel-register" } … 然后我可以在我的项目根目录中键入npm run test ,并且运行mochatesting(通过调用安装在node_modules/mocha/bin的mocha二进制文件)。 有没有办法实现完全相同的行为,但不创build脚本条目? 例如,一次性“脚本”? 我想像下面这样,等同于npm run test : npm cmd mocha –recursive test/**/*.js –compilers js:babel-register 有没有办法做到这一点? 注:我应该澄清,我正在寻找真正的等值。 也就是说,我的命令应该能够访问其他脚本命令等。我知道你总是可以使用节点和node_modules中的二进制文件的path调用二进制文件,但这不是一个适当的解决scheme。

给terminal提示添加颜色会导致大的空白区域

我正在处理一个简单的cli脚本,并想添加一些颜色到下面的代码: rl.question('Enter destination path: ', function(answer) { // … }); rl.write('/home/' + user + '/bin'); 在terminal显示: Enter destination path: /home/jmcateer/bin_ 但我想添加一些颜色的提示我做了以下几点: rl.question('\u001b[1;36mEnter destination path:\u001b[0m ', function(answer) { }); rl.write('/home/' + user + '/bin'); 命令行提示结束显示: Enter destination path: /home/jmcateer/bin_ 它的工作原理,但是我不希望有大量的空白空间。 有没有人有任何想法如何处理这个? 编辑: 我不能通过退格来删除白色空间…当我尝试使用退格键时,白色空间像这样跳到另一端 Enter destination path: /home/jmcateer/bin_ Enter destination path: /home/jmcateer/bi _ Enter destination path: /home/jmcateer/b […]

Heroku创build命令产生“ENOENT”错误

当试图调用“heroku创build”时,我得到以下结果: Creating app… done, stack is cedar-14 ENOENT: spawn git ENOENT 我该如何解决这个错误?

CLI的commander.js集成testing

我使用commander.js创build了一个CLI 。 我为我的所有源代码编写了unit testing,但是我想写一个使用可执行文件的集成testing。 人们如何testingCLI? 我可以一起破解一些东西,但我认为testingCLI必须有一个最佳实践。

npm -g“无论”打开的文件太多了

我知道有时你可以通过更新或安装大npm包得到“太多打开的文件”的错误,但现在我发现我随时尝试用“-g” npm -g ls npm ls -g npm update -g 甚至具体 npm update -g grunt-cli npm update -g [whatever package] npm install -g [whatever package] 我在Mac OS X 10.8 Mountain Lion上,我的ulimit已经设置为unlimited 有什么build议?

arrays使用指挥官

嘿家伙! 我需要指挥官 node.js库的帮助。 我需要创build这个接受3个标志的CLI,–input,–output和–pattern,比如: commander .version('3.0.0') .usage('[options] <file …>') .option('-i, –input', 'Array of files to be extracted') .option('-o, –output', 'Output file name') .option('-p, –pattern', 'Pattern name to be used in the extraction') .parse(process.argv); 我的问题是与input标志。 我需要发送几个文件,因为我需要一个数组数据types。 问题是:我只是不知道如何做到这一点: node ./bin/extract -i ../files/*.PDF 成为我的文件目录中的所有文件的数组。 我已经尝试运行文档中的每个示例,并且找不到解决scheme。 另外,我search的问题,并没有find任何…什么是奇怪的,也许我做错了什么,你们可以帮忙? 谢谢!

定制node.js CLI工具configuration文件的build议/最佳实践:位置和命名?

我会尽量保持这个问题的简短,但它是在2个部分,请: nodejs / npm CLI工具的configuration文件应该保存在哪里? 他们应该叫什么? 比方说,我写了一个node.js CLI工具,例如抓取今天的天气,并显示在terminal。 我称之为weather-getter 。 请注意,主要目标不是以编程方式调用,而是像BASH那样键入terminal。 打算在全局安装后input其简单名称, 或通过用户本地/ bin中的目录运行。 ( Sudo不需要安装。 ) 这个项目将通过npm正常安装。 它可以通过如下参数接收邮政编码: gavin@localhost:~$ weather-getter -z "12345" 好的程序可以正常工作。 我下一步将允许用户保存一个configuration文件的地方 ,并从该configuration文件拉默认。 类似于.vimrc文件。 这个configuration可能看起来像这样: { "zipcode": "12345", "language": "en", "unit": "fahrenheit" } 我想这应该从一个点开始。 我也假设它应该位于npm模块安装中,而不是在〜/中 。 还是应该考虑使用〜/或/ etc /或〜/ .config或〜/ .local像许多其他程序? 节点程序是否应该尝试使用公共目录,例如〜/ .config / node /或〜/ .config / npm / ? 如果文件在那里,它应该开始没有点? […]

如何继续在repl / bash w / Node.js Commander中接收asynchronousconsole.log消息?

我有一个Node.js CLI,我一直在使用Commander库来构build。 这是主执行文件的代码。 #!/usr/bin/env node var program = require('commander'); var scmStash = require('./lib/hdqc/scmStash'); var command = {}; program .version('0.0.1') .option('-P, –Projects', 'List Projects') .option('-R, –Repositories', 'List All Repositories on Server.') .parse(process.argv); function listProjects() { scmStash.getProjectListing(function (data) { for (var i = 0; i < data.size; i++) { var project = data.values[i]; console.log(' ' + i […]

节点包 – 是否有可能在package.json中插入一个variables?

我有一个使用node-sass编译Sass的静态网站。 目前我正在使用Grunt来观看文件,但是我觉得这是过度的,因为我可以使用他们的内置CLI。 所以我把这个添加到我的package.json中: // package.json … "scripts": { "sass": "node-sass -w input/dir -o output-dir/" } 问题是,我需要在–include-path require一个Sass框架模块(全局安装)。 我可以在Gruntfile中做到这一点: // Gruntfile.js sass: { options: { includePaths: require("the-framework").includePaths() }, … }, 所以我想到的第一件事是插入string,如: // package.json … "scripts": { "sass": "node-sass -w input/dir -o output-dir/ –include-path " + require("the-framework").includePaths() } 和预期的一样,这是行不通的。 那么脚本运行,但插值的variables被忽略。 任何解决scheme或替代? 如果可能的话,我宁愿不创build额外的文件来存储variables。 谢谢