Когда я пытаюсь исполнить код
imagick.identify(`../temp/${data.name}.${data.format}`, function(err, features)
{
console.debug(err)
console.debug(features)
})
Я получаю следующую ошибку:
events.js:183
throw er; // Unhandled 'error' event
^
Error: spawn identify ENOENT
at _errnoException (util.js:992:11)
at Process.ChildProcess._handle.onexit (internal/child_process.js:190:19)
at onErrorNT (internal/child_process.js:372:16)
at _combinedTickCallback (internal/process/next_tick.js:138:11)
at process._tickCallback (internal/process/next_tick.js:180:9)
Как можно это исправить?
UPD: после добавления
(function() {
var childProcess = require("child_process");
var oldSpawn = childProcess.spawn;
function mySpawn() {
console.log('spawn called');
console.log(arguments);
var result = oldSpawn.apply(this, arguments);
return result;
}
childProcess.spawn = mySpawn;
})();
в начало скрипта в консоль выводится вот это:
{ '0': 'identify',
'1': [ '-verbose', '../temp/1535611966778.png' ] }
В итоге я все же нашел решение. На самом деле это ужасный костыль, хотя как единственное действенное решение под windows сойдет.
ImageMagick-7.0.8-11-Q16-x64-dll.exe
и устанавливаем его.imagemagick
-- imagemagick.js
var child = childproc.spawn('cmd.exe', ['/C', file + ' ' + args.join(' ')]);
exports.identify.path = 'magick identify';
У меня это сработало. По видимому, child_process
не может создавать дочерние процессы из команд. В таком случае мы запускаем процесс cmd.exe и уже ему передаем нашу команду, в данном случае magick identify
.
P.S. Таким же способом стоит прокачать строку 255 (convert
-> magick convert
), дабы не было проблем с выполнением ресайза и прочими командами.
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
как можно сделать из строки например "Press,Moderators,Speakers" чтобы был массив arr = ["Press", "Moderators", "Speakers"]
i have button that open div with content of formsi wanna div to be closed when i submit button in this div