سطر الأوامر جافا سكريبت وسائط الإدخال القضايا بينما التصغير الجافا سكربت في جي إديت
-
07-07-2019 - |
سؤال
وأريد أن تقليل جافا سكريبت بلدي الملفات مباشرة في جي إديت. حاولت أن تفعل ذلك عن طريق خيار أدوات الخارجي مع 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();