Spritesmith gulp.dest 路径问题

Spritesmith gulp.dest pathing issue

每次我 运行 我的 sprite 任务,我都会得到错误 EPERM:不允许操作,mkdir 'C:\Users\images'。我希望图像路径是相对的。

我不明白为什么当 scss 文件正确保存在其父 (src) 文件夹中时,我的新 spritesheet 的目标指向我的用户目录。此外,scss 可以正确构建并读取我在 /sprites 中的 png 文件。

我的文件夹结构:

  /
  src/
    node_modules/
    sprites/
    _sprites.scss
    gulpfile.js
  www/
    images/

Gulp 任务:

var spritesmith = require('gulp.spritesmith');
gulp.task('sprite', function () {
    var spriteData = gulp.src('./sprites/*.png')
        .pipe(spritesmith({
            imgName: '/images/sprite.png',
            cssName: '_sprites.scss'
        }));
    spriteData.img.pipe(gulp.dest('./../www/images/'));
    spriteData.css.pipe(gulp.dest('./'));
});

正如我所说,除了新 sprite.png 的图像路径外,一切正常。

我会简化这个:

imgName: '/images/sprite.png',

imgName: 'images/sprite.png',

并修改

spriteData.img.pipe(gulp.dest('./../www/images/'));

spriteData.img.pipe(gulp.dest('./../www/images'));

看起来你会以两个相邻的反斜杠结尾,如 www/images//sprite.png