4
我需要製作不同分辨率的圖像版本。但是,我的代碼輸出很亂 - 一些文件丟失,一些圖片保存在不同的文件名下。我知道它與異步執行有關,但我並不十分熟悉node.js,所以我不能自己弄清楚如何解決它。任何幫助表示讚賞,特別是解釋。批量調整大小
var gulp = require('gulp');
var rename = require('gulp-rename');
var gm = require('gulp-gm');
var originalBasename = '';
gulp.task('resize-all', function() {
return gulp.src(['_img/**/*.{jpg,png}', '_img/*.{jpg,png}'])
.pipe(rename(function (path) {
originalBasename = path.basename;
path.basename += "-2048";
}))
.pipe(gm(function (gmfile) {
return gmfile.resize(2048, 5000);
}))
.pipe(gulp.dest('_site/img'))
.pipe(rename(function (path) {
path.basename = originalBasename; // restore basename
path.basename += "-1536";
}))
.pipe(gm(function (gmfile) {
return gmfile.resize(1536, 5000);
}))
.pipe(gulp.dest('_site/img'))
.pipe(rename(function (path) {
path.basename = originalBasename; // restore basename
path.basename += "-1080";
}))
.pipe(gm(function (gmfile) {
return gmfile.resize(1080, 5000);
}))
.pipe(gulp.dest('_site/img'))
.pipe(rename(function (path) {
path.basename = originalBasename; // restore basename
path.basename += "-750";
}))
.pipe(gm(function (gmfile) {
return gmfile.resize(750, 5000);
}))
.pipe(gulp.dest('_site/img'))
.pipe(rename(function (path) {
path.basename = originalBasename; // restore basename
path.basename += "-320";
}))
.pipe(gm(function (gmfile) {
return gmfile.resize(320, 5000);
}))
.pipe(gulp.dest('_site/img'))
});
我試過了,但放棄了上安裝libvips(安裝過程中出現錯誤,編譯指令也不適用於我)。 – Mike
和其他替代https://www.npmjs.com/package/gulp-responsive-images? –
我設法安裝libvips並安裝了https://github.com/mahnunchik/gulp-responsive,但無法運行你的代碼而沒有錯誤('glob pattern string required')。但幸運的是,第二個鏈接似乎是一個完美的契合!謝謝! – Mike