首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >命令行JavaScript输入参数在Gedit中缩小JavaScript时的问题

命令行JavaScript输入参数在Gedit中缩小JavaScript时的问题
EN

Stack Overflow用户
提问于 2009-09-15 17:03:39
回答 1查看 1.3K关注 0票数 1

我想立即缩小我在Gedit中的JavaScript文件。我尝试使用jsmin.js脚本通过外部工具选项来完成它。我安装了SpiderMonkey引擎。我将jsmin.js文件存储在/home/mushex/use/ js /jsmin.js中,并在内容相同的目录中创建了一个名为jsmin-low.js的新js文件。

代码语言:javascript
复制
#!/usr/bin/js 

load('/home/mushex/use/js/jsmin.js');

var body = arguments[0],
    result = jsmin('', body, 1);
if (result) {
    print(result);
} else {
    print(body);
}

它会打印出未定义的。对于调试,我将脚本更改为仅在参数打印操作中执行,并看到输入为null (未定义)。用于调试的文件来源是

代码语言:javascript
复制
#!/usr/bin/js 
print(arguments[0]);

但是当我在命令行中运行它时,它的输出是正确的。通过gedit,其他js命令行工具正常工作。为什么我的输入参数不传递。

下面是我在gedit中为这个工具设置的设置。

设置http://imagebin.org/index.php?mode=image&id=63960

如有任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-09-15 19:15:35

问题是gedit将文档发送到程序的标准输入中,而不是作为命令行参数。SpiderMonkey shell有一个从stdin读取一行的readline()函数,但它无法知道何时到达EOF。

如果您使用SpiderMonkey支持编译File,您可能会这样做,但我从未尝试过。

如果您使用犀牛壳,您可以像这样直接使用Java类:

代码语言:javascript
复制
function readStdin() {
    var stdin = new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.System["in"]));
    var lines = [];
    var line;
    while ((line = stdin.readLine()) !== null) {
        lines.push(line);
    }
    return lines.join("\n");
}

var body = readStdin();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1428428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档