Ich habe versucht, Änderungen an @imports zusammen mit denen zu SCSS-Dateien zu kompilieren, und im Grunde funktioniert das.Gulp Sass kompiliert nur mit zwei Speichern
Das Problem mit meinem Setup: Um Änderungen zu sehen, muss ich Dateien zweimal speichern (unabhängig davon, ob sie Hauptdateien oder Importe sind). Ideen dazu werden sehr geschätzt.
Die Verzeichnisstruktur ist einfach:
-> SCSS
-> SCSS/partials
Hier sind die relevanten Teile meines gulpfile:
var gulp = require('gulp');
var $ = require('gulp-load-plugins')();
var autoprefixer = require('gulp-autoprefixer');
var rename = require('gulp-rename');
var sync = require('browser-sync').create(); // create a browser sync instance.
var sassPaths = [
'bower_components/foundation-sites/scss',
'bower_components/motion-ui/src'
];
var paths = {
'assets': 'assets',
'dev': 'assets/styles/dev'
};
// DEV CSS
gulp.task('dev-styles', function() {
return gulp.src(['scss/**/*.scss', 'scss/*.scss'])
.pipe($.sass({
includePaths: sassPaths,
outputStyles: 'expanded'
})
.on('error', $.sass.logError))
.pipe(autoprefixer({
browsers: ['last 2 versions', 'ie >=9']
}))
.pipe(rename({
suffix: '.dev'
}))
.pipe(gulp.dest('paths.dev'));
});
// DEFAULT WATCH
gulp.task('default', function() {
sync.init({
injectChanges: true,
proxy: 'localhost/basic-modx'
});
\t
\t gulp.watch([ 'scss/**/*.scss', 'scss/*.scss' ], ['dev-styles']);
gulp.watch([ 'scss/**/*.scss', 'scss/*.scss' ]).on('change', sync.reload);
});
Vielen Dank - Ich hatte die browserSync Dokumentation überprüft, als dieses Problem auftauchte und die Inkongruenz dieses Setups sah, aber es auch in mehreren Projekten ohne Probleme verwendet hatte. Wie auch immer, jetzt, wo die Gulpfile sich an die Docs (!) Hält, ist alles in Ordnung. Danke noch einmal. – jivers