gulp任务复制整个文件夹

时间:2016-01-15 14:59:42

标签: css sass gulp

我有以下gulp任务:

gulp.task('sassComponents', function() {
  return gulp.src('sassComponents/**/mainScss/*.scss')
    .pipe(sass({
        'sourcemap=none': true,
         errLogToConsole: true
    })).on('error', notify.onError({
        title: "mistake: ",
        message: "<%= error.message %>"
    }))
    .pipe(gulp.dest('public/stylesheets/'));
});

我希望它将.scss中的sassComponents/**/mainScss/文件放入public/stylesheets(并将其转换为.css),但它会复制整个文件夹结构(不是只是文件):

**/mainScss/sass.scss

.scss.css的转换正确发生,但是如何在没有其余文件夹的情况下获取sass文件?

1 个答案:

答案 0 :(得分:1)

尝试以下方法:

gulp.task('sassComponents', function(){
    return gulp.src('sassComponents/**/mainScss/*.scss', {base: "./"})
    .pipe(sass({
        'sourcemap=none': true,
        errLogToConsole: true
    })).on('error', notify.onError({
        title: "mistake: ",
        message: "<%= error.message %>"
    }))
    .pipe(rename({dirname:''}))
    .pipe(gulp.dest('public/stylesheets/'));
});

修改

要使用上述代码,您需要使用npm安装gulp-rename:

npm install --save gulp-rename

并且您需要将其声明为gulpfile中的变量

var rename = require('gulp-rename');