0

次のフォルダーの変更を監視する gulpfile があります。

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 = "\n\n\n\/\/ ----------------------------------------------------------------------\n\n"
              + src;
        return src;
      }
    }))
    .pipe(concat.header('\/\/SCSS Framework\n\n'))
    .pipe(gulp.dest(SCSSPath + "./"));
  }

  watch('../framework/**/*.scss', function (info) {
    concatSCSS();
    console.log(info.event + " scss: " + info.history[0].replace(/^.*[\\\/]/, ''))
  });

  concatSCSS();

});
4

1 に答える 1

2

次のように、glob パターンを使用.scssしてルート フォルダー内のファイルを除外できると思います。

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

この方法では、サブディレクトリから .scss ファイルのみを取得します

于 2015-11-24T11:46:12.133 に答える