2017-05-05 3 views
1

Gulp sass/gulp watch kann die bereits vorhandene/generierte .css-Datei nicht überschreiben. Wenn also keine generierte CSS-Datei im Ordner vorhanden ist, funktioniert der Befehl einwandfrei. Aber, wenn die Datei in dem Ordner, den ich bekomme, unter Fehler liegt.Gulp sass kann die bereits vorhandene Datei nicht überschreiben

[12.17.39] Fehler: EPERM: Betrieb nicht, offen 'C: \ Eigene Ordner \ Projekt \ components \ site-Produkte \ demo \ app \ css \ style.css' erlaubt

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 

gulp.task('sass', function() { 
    return gulp.src('./demo/app/scss/**/*.scss') 
    .pipe(sass().on('error', sass.logError)) 
    .pipe(gulp.dest('./demo/app/css')); 
}); 

gulp.task('sass:watch', function() { 
    gulp.watch('./demo/app/scss/**/*.scss', ['sass']); 
}); 

Nicht sicher, es ist relevant, aber ich benutze keinen Schluck-Kompass. Ich benutze stattdessen Node-Sass. Vielen Dank im Voraus für Hilfe.

Antwort

0

Sie die saubere Aufgabe verwenden können:

// Path 
var paths = { 
    scss: { 
    input: 'dev/assets/scss/**/*.{scss,sass}', 
    output: 'public/assets/css' 
    } 
}; 

// SCSS 
gulp.task('scss', function() { 
    return sass(paths.scss.input) 
    .pipe(autoprefixer('last 2 version')) 
    .pipe(cssnano()) 
    .pipe(gulp.dest(paths.scss.output)) 
    .pipe(browserSync.reload({stream: true})); 
}); 

// Clean 
gulp.task('clean', function() { 
    return del(['public/**/*']); 
}); 


// Default 
gulp.task('default', ['clean'], function() { 
    gulp.start('scss'); 
}); 
1

es schließlich gelöst, war es, weil webpack-Dateien ist verriegelt. Gebrauchte schluck-chmod zu umgehen it :)

Hier ist das endgültige Skript ist:

var gulp = require('gulp'); 
var sass = require('gulp-sass'); 
var chmod = require('gulp-chmod'); 

gulp.task('sass', function() { 
    return gulp.src('./demo/app/scss/**/*.scss') 
    .pipe(chmod(0o755)) 
    .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError)) 
    .pipe(gulp.dest('./dist/demo/css')); 
}); 


gulp.task('sass:watch', function() { 
    gulp.watch('./demo/app/scss/**/*.scss', ['sass']); 
});