2015-05-05 91 views
0

我是新來的使用吞嚥,我想我有它正確設置,但它似乎沒有做它應該做的。吞嚥看不正確

我gulpfile.js有

gulp.task('compass', function() { 
     return gulp.src('sites/default/themes/lsl_theme/sass/**/*.scss') 
     .pipe(compass({ 
     config_file: 'sites/default/themes/lsl_theme/config.rb', 
     css: 'css', 
     sass: 'scss' 
     })) 
     .pipe(gulp.dest('./sites/default/themes/lsl_theme/css')) 
     .pipe(notify({ 
     message: 'Compass task complete.' 
     })) 
     .pipe(livereload()); 
    }); 

gulp.task('scripts', function() { 
    return gulp.src([ 
     'sites/default/themes/lsl_theme/js/**/*.js' 
    ]) 
    .pipe(plumber()) 
    .pipe(concat('lsl.js')) 
    .pipe(gulp.dest('sites/default/themes/lsl_theme/js')) 
    // .pipe(stripDebug()) 
    .pipe(uglify('lsl.js')) 
    .pipe(rename('lsl.min.js')) 
    .pipe(gulp.dest('sites/default/themes/lsl_theme/js')) 
    .pipe(sourcemaps.write()) 
    .pipe(notify({ 
     message: 'Scripts task complete.' 
    })) 
    .pipe(filesize()) 
    .pipe(livereload()); 
}); 

,手錶功能

gulp.task('watch', function() { 
    livereload.listen(); 
    gulp.watch('./sites/default/themes/lsl_theme/js/**/*.js', ['scripts']); 
    gulp.watch('./sites/default/themes/lsl_theme/sass/**/*.scss', ['compass']); 
}); 

當我運行一飲而盡,結果是

[16:14:36] Starting 'compass'... 
[16:14:36] Starting 'scripts'... 
[16:14:36] Starting 'watch'... 
[16:14:37] Finished 'watch' after 89 ms 

並且沒有更改被註冊。

對於文件結構,我的gulpfile.js位於根目錄下,sass,css和js都在root/sites/default/themes/lsl_theme中,sass文件夾包含文件夾'components' 。

回答

0

事實證明,有很大一部分我的問題僅僅是成爲Gulp的新手。當我從我的吞嚥手錶中刪除'scripts'它開始工作。

然後,我做了連接,它正在觀察相同的目錄,它將新的連接和縮小的js文件放入,因此它會放入新文件,檢查該文件以及一遍又一遍地循環導致內存問題因爲不允許'compass'運行。

創建一個'dest'文件夾來保存新的js後,一切都開始工作,只是桃色。

0

我的假設是你在窗戶上?如我錯了請糾正我。

存在這個問題,gulp-notify傾向於打破gulp.watch函數。嘗試註釋掉

// .pipe(notify({ 
// message: 'Scripts task complete.' 
// })) 

並查看問題是否仍然存在。

如果確實解決了這個問題,this thread的解決方案可能會有幫助。

您可以結合使用the gulp-if plugin與 的os node module 來確定,如果你是在Windows上,然後排除gulp-notify,像 這樣:

var _if = require('gulp-if'); 

//... 

// From https://stackoverflow.com/questions/8683895/variable-to-detect-operating-system-in-node-scripts 
var isWindows = /^win/.test(require('os').platform()); 

//... 

    // use like so: 
    .pipe(_if(!isWindows, notify('Coffeescript compile successful')))