#node.js #gulp
#node.js #gulp
Вопрос:
У меня есть большой список изображений (2874), которые необходимо оптимизировать, gulp-imagemin
но ОС, по-видимому, ограничивает количество открытых файлов. Я могу изменить это с ulimit
помощью, но это не кажется особенно переносимым и безопасным, учитывая количество файлов.
Это мой текущий код:
function optimizeImages() {
return gulp.src('images/*')
.pipe(imagemin())
.pipe(gulp.dest(dest));
}
Есть ли способ запустить плагин для подмножества файлов одновременно? Вот так
function exampleTask() {
return gulp.src('images/*')
.pipe(limitConcurrency(imagemin(), 50))
.pipe(gulp.dest(dest));
}
Ответ №1:
Оказывается, что Gulp был обновлен для исправления ошибки Error: EMFILE, too many open files
недавно, но я еще не обновил. Теперь проблема параллелизма решается автоматически!
Я только что запустил это в своей папке проекта:
npm update gulp
Комментарии:
1. Полезно знать. Одно предостережение: это не полностью решено: если вы выложите для запуска Phantom.js или что-то в этом роде, вы все еще можете превысить лимит, и, возможно, вам потребуется реализовать подход с использованием очереди вокруг таких команд.