2014-12-10 2 views
-2

У меня есть gulpfile.js, который выглядит следующим образом:Глоток не запишет результат в файл

var gulp = require('gulp'), 
concat = require('gulp-concat'), 
less = require('gulp-less'), 
minifyCSS = require('gulp-minify-css'), 
uglify = require('gulp-uglify'), 
autoprefixer = require('gulp-autoprefixer'); 

gulp.task('less', function() { 
    gulp.src(['less/*.less']) 
     .pipe(less()) 
     .pipe(concat('everything.css')) 
     .pipe(autoprefixer()) 
     .pipe(minifyCSS()) 
     .pipe(gulp.dest('asset/')); 
}); 

gulp.task('js', function() { 
    gulp.src(['javascript/*.js']) 
     .pipe(concat('everything.js')) 
     .pipe(uglify()) 
     .pipe(gulp.dest('asset/')); 
}); 

gulp.task('watch', function() { 
    gulp.watch('javascript/*.js', ['js']); 
    gulp.watch('less/*.less', ['less']); 
}); 

Как я развивался, тем меньше задача перестала работать на ровном месте. Консоль не бросает никаких ошибок, все выглядит так, как должно, но файл all.css не обновляется. Я даже удалил файл, и он не создается снова.

Я совершенно не знаю, что происходит, даже перезагрузил мой компьютер как проверку работоспособности, но это не помогло.

EDIT: Таким образом, видимо, это труба less. Но почему это внезапно началось?

+0

удалите все лишние шаги «меньше», пока у вас не будет что-то, что работает, а затем добавьте их обратно, пока не найдете проблему. – Mathletics

+0

@Mathletics Ну, видимо, это меньше. Просто сохраняя 'src' и' dest', вы будете копировать меньше файлов с 'less' на' asset', но даже если между ними перестает работать труба 'less', она перестает работать. – bodyflex

ответ

2

Попробуйте обновить меньшее количество файлов, чтобы упростить. Это общий шаблон дизайна, и она работает очень хорошо для меня:

/*main.less*/ 
@import "somefile.less" 
@import "some/deep/nested/file.less" 

В других ваших меньше файлов, те будут, где вы храните actuall less код.

Тогда в вашем gulpfile.js вы хотите изменить немного:

... 
gulp.task('less', function() { 
    gulp.src(['less/main.less']) //only pull in your main.less file 
     .pipe(less()) 
     .pipe(autoprefixer()) 
     .pipe(minifyCSS()) 
     .pipe(gulp.dest('asset/')); 
}); 
... 

gulp.task('watch', function() { 
    gulp.watch('javascript/*.js', ['js']); 
    gulp.watch('less/*.less', ['less']); //this remains the same - you want to watch for all changes 
}); 

Примечание:gulp.watch не будет искать новые файлы - вам нужно будет перезапустить, когда у вас есть новые файлы, или использовать что-то вроде gulp-watch ,

Это решит все виды головных болей для вас. Надеюсь, поможет!

+1

Этот ответ помог мне решить проблему! Оказывается, я пропускал точку с запятой в файле LESS, но по какой-то причине компилятор молчал об этом. FML. – bodyflex

Смежные вопросы