2014-12-18 6 views
4

배열을 순환하는 감시 작업이 있습니다. 배열 안의 문자열은 다른 파일 경로를 감시하는 데 사용됩니다. 그것이 시계 기능이있는 라인입니다. on 함수는이 파일 내부의 변경을 찾습니다. 변경 사항이 있으면 새 함수가 호출되어 sass 파일을 컴파일하기 시작합니다.Gulp - 내부 함수에 매개 변수 전달

function setWatchPipe(groupName) { 
    gulp 
    .watch(watchStyles[groupName]) 
    .on('change', function(e, groupName) { 
     console.log(groupName); 
     return gulp.src(appFiles.styles.src + groupName) 
      .pipe($.plumber({ errorHandler: function (error) {}})) 
      .pipe($.rubySass({ 
       style: sassStyle, 
       compass: true, 
       noCache: true 
      })) 
      .pipe(isProduction ? $.combineMediaQueries({ log: true }) : _.noop()) 
      .pipe(isProduction ? $.minifyCss({ keepSpecialComments: 1 }) : _.noop()) 
      .pipe($.plumber.stop()) 
      .pipe(gulp.dest(paths.styles.dest)) 
      .pipe($.size({ 
       showFiles: true 
      })); 

    }); 
} 

var watchArray = ['base', 'front']; 

gulp.task('watch', ['build-styles'], function() { 
    for(var i = 0; i < watchArray.length; i++) 
    setWatchPipe(watchArray[i]); 
}); 

내 문제는 "groupName"매개 변수입니다. 감시 작업은 변경 사항에 반응하지만 console.log는 정의되지 않습니다. 배열에서 문자열의 출력을 가져올 필요가 있지만 해당 위치에 변수를 전달하는 방법을 알지 못합니다. 올바른 소스 파일을 작성해야합니다.

인사말, 라스

답변

0

시도 function(e) 대신 function(e, groupName)를 사용하여. 변수에 groupNameundefined으로 설정하여 계정을 폐쇄 할 수 있습니다. change 콜백은 내가 생각하기에 하나의 인수 만 반환합니다.

+0

Awww maaan. 나는 "groupName"만 쓰려고했지만 결코 "e"하지 않았다. 그게 전부 야. 고마워요! :) – Lars

+0

굉장한 친구 :) 도와 줘서 기뻐요. –