1

我想立即在 Gedit 中缩小我的 JavaScript 文件。我尝试通过带有jsmin.js脚本的外部工具选项来做到这一点。我安装了 SpiderMonkey 引擎。我将jsmin.js文件存储在/home/mushex/use/js/jsmin.js并在同一目录中创建了一个名为jsmin-low.js的新 js 文件,其中包含内容

#!/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);
}

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

#!/usr/bin/js 
print(arguments[0]);

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

这是我在 gedit 中为此工具设置的设置。

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

任何帮助将不胜感激谢谢。

4

1 回答 1

1

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

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

如果你使用Rhino shell,你可以像这样直接使用 Java 类:

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();
于 2009-09-15T19:15:35.010 回答