1

JavaScriptファイルをGeditですぐに縮小したい。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

どんな助けでも大歓迎ですありがとう。

4

1 に答える 1

1

問題は、geditがドキュメントをコマンドライン引数としてではなく、プログラムの標準入力に送信していることです。SpiderMonkeyシェルには、readline()stdinから行を読み取る関数がありますが、EOFに到達したことを知る方法はありません。

SpiderMonkeyをFileサポート付きでコンパイルすれば、おそらくそれを実行できますが、私はそれを試したことがありません。

Rhinoシェルを使用する場合は、次のように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 に答える