سطر الأوامر جافا سكريبت وسائط الإدخال القضايا بينما التصغير الجافا سكربت في جي إديت

StackOverflow https://stackoverflow.com/questions/1428428

سؤال

وأريد أن تقليل جافا سكريبت بلدي الملفات مباشرة في جي إديت. حاولت أن تفعل ذلك عن طريق خيار أدوات الخارجي مع jsmin.js النصي. لدي محرك سبايدر مونكي تثبيت. I المخزنة <م> jsmin.js الملف في /home/mushex/use/js/jsmin.js وإنشاء ملف جديد اسمه شبيبة <م> jsmin-low.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]);

ولكن عندما أنا على التوالي في سطر الأوامر انها الإخراج هو الصحيح. وعبر جي إديت أدوات سطر الأوامر الأخرى شبيبة يعملون العادي. تجول لماذا حججي المدخلات لا يمر.

وهنا إعدادات وضعته لهذه الأداة في جي إديت.

إعدادات http://imagebin.org/index.php؟mode=image&id= 63960

وأي مساعدة وسيتم تقدير كبير شكرا.

هل كانت مفيدة؟

المحلول

والمشكلة هي أن جي إديت يرسل وثيقة إلى الإدخال القياسي البرنامج الخاص بك، وليس بوصفه وسيطة سطر الأوامر. وسبايدر مونكي قذيفة لديه وظيفة readline() الذي يقرأ خط من ستدين، لكنه لا يملك وسيلة لمعرفة عندما تصل إلى EOF.

إذا كنت ترجمة سبايدر مونكي بدعم 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();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top