在Gedit中缩小JavaScript时命令行JavaScript输入参数问题
我想在Gedit中立即缩小我的JavaScript文件。我试着用脚本通过外部工具选项来实现。我已经安装了SpiderMonkey引擎。我将jsmin.js文件存储在/home/mushex/use/js/jsmin.js,并在同一目录下创建了一个名为jsmin-low.js的新js文件,其中包含内容在Gedit中缩小JavaScript时命令行JavaScript输入参数问题,javascript,minify,gedit,spidermonkey,Javascript,Minify,Gedit,Spidermonkey,我想在Gedit中立即缩小我的JavaScript文件。我试着用脚本通过外部工具选项来实现。我已经安装了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(
#!/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中为此工具设置的设置
任何帮助都将不胜感激
谢谢。问题在于gedit将文档发送到程序的标准输入中,而不是作为命令行参数。SpiderMonkey shell有一个
readline()
函数,可以从stdin中读取一行,但是它无法知道何时到达EOF
如果您使用File
支持编译SpiderMonkey,您可能会这样做,但我从未尝试过
如果使用,可以直接使用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();
问题是gedit将文档发送到程序的标准输入中,而不是作为命令行参数。SpiderMonkey shell有一个
readline()
函数,可以从stdin中读取一行,但是它无法知道何时到达EOF
如果您使用File
支持编译SpiderMonkey,您可能会这样做,但我从未尝试过
如果使用,可以直接使用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();
Rhino shell的下载在哪里?我的google fu让我失望了。@Matthew Crumley谢谢你,伙计,如果没有什么帮助的话,我想我会用Rhino来做(其实我并不太在乎,只是对如何做印象深刻)@Herms的资料来源在这里Rhino shell的下载在哪里?我的谷歌fu让我失望了。@Matthew Crumley谢谢你,伙计,如果没有什么帮助,我想我会用Rhino(其实我不太在乎它,只是对如何做印象深刻)@Herms的消息来源在这里