我一直试图让gulp.spritesmith使用视网膜图像,但没有运气。
只要我的图像与gulp文件处于同一级别,一切都按预期工作。如果我将图像移动到子目录并将gulp.src更改为指向它,我会收到以下错误:
AssertionError: Retina settings detected but 0 retina images were found. We have 2 normal images and expect these numbers to line up. Please double check `retinaSrcFilter`.
这是我的设置:
gulp.task('sprite', function () {
var spriteData = gulp.src('img/*.png')
.pipe(spritesmith({
retinaSrcFilter: '*@2x.png',
imgName: 'spritesheet.png',
retinaImgName: 'spritesheet@2x.png',
cssName: 'sprites.scss'
}));
return spriteData.pipe(gulp.dest('dist/'));
});
再次,如果我将src更改为
var spriteData = gulp.src('*.png')
并且在那里有相同的图像,一切都很好。
有谁知道这里可能出现什么问题?
感谢。
答案 0 :(得分:3)
我认为你也可能需要retinaSrcFilter glob中的dir?
gulp.task('sprite', function () {
var spriteData = gulp.src('img/*.png')
.pipe(spritesmith({
retinaSrcFilter: 'img/*@2x.png',
imgName: 'spritesheet.png',
retinaImgName: 'spritesheet@2x.png',
cssName: 'sprites.scss'
}));
return spriteData.pipe(gulp.dest('dist/'));
});