我想立即缩小我在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);
}它会打印出未定义的。对于调试,我将脚本更改为仅在参数打印操作中执行,并看到输入为null (未定义)。用于调试的文件来源是
#!/usr/bin/js
print(arguments[0]);但是当我在命令行中运行它时,它的输出是正确的。通过gedit,其他js命令行工具正常工作。为什么我的输入参数不传递。
下面是我在gedit中为这个工具设置的设置。
设置http://imagebin.org/index.php?mode=image&id=63960
如有任何帮助,将不胜感激。
发布于 2009-09-15 19:15:35
问题是gedit将文档发送到程序的标准输入中,而不是作为命令行参数。SpiderMonkey shell有一个从stdin读取一行的readline()函数,但它无法知道何时到达EOF。
如果您使用SpiderMonkey支持编译File,您可能会这样做,但我从未尝试过。
如果您使用犀牛壳,您可以像这样直接使用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();https://stackoverflow.com/questions/1428428
复制相似问题