gulp.spritesmith在子目录中无法找到视网膜图像

时间:2015-09-24 21:22:32

标签: gulp css-sprites

我一直试图让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')

并且在那里有相同的图像,一切都很好。

有谁知道这里可能出现什么问题?

感谢。

1 个答案:

答案 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/'));
});