Gulp-仅针对子文件夹中的文件



我有一个gullfile在下面的文件夹中监视更改:

SCSSSource = '../framework/**/*.scss';

这将观察以下示例文件中的更改:

  1. '../framework/styling.scss'//根文件夹
  2. '../framework/subfolder1/styling.scss'
  3. '../framework/subfolder2/styling.scss'

我想从根文件夹(1.)中排除所有文件,只保留一个子文件夹进行监视。我应该如何修改SCSSSource字符串才能实现这一点?

完整代码:

var gulp = require('gulp');
var watch = require('gulp-watch');
var concat = require('gulp-concat-util');

gulp.task('watch', function(){
  // "./*"  - all in current foler
  // "./**" - all in current foler and subfolders
  // SCSS FILE
  var SCSSPath = '../framework/';
  var SCSSName = '**/*.scss';
  var SCSSSource = SCSSPath + SCSSName;
  function concatSCSS(){
    // concatenate files
    gulp.src(SCSSSource)
    .pipe(concat('_cssfw.scss', {
      process: function(src){
        src = "nnn// ----------------------------------------------------------------------nn"
              + src;
        return src;
      }
    }))
    .pipe(concat.header('//SCSS Frameworknn'))
    .pipe(gulp.dest(SCSSPath + "./"));
  }
  watch('../framework/**/*.scss', function (info) {
    concatSCSS();
    console.log(info.event + " scss: " + info.history[0].replace(/^.*[\/]/, ''))
  });
  concatSCSS();
});

我认为您可以使用glob模式来排除根文件夹中的.scss文件,如下所示:

var SCSSSource = SCSSPath + SCSSName;
var exclude = "!../framework/*.scss"
function concatSCSS(){
        // concatenate files
        gulp.src([SCSSSource, exclude])

通过这种方式,您只能从子目录

中获取.scs文件

相关内容

  • 没有找到相关文章

最新更新