Gulp Sass无法覆盖已经存在的文件



Gulp Sass/Gulp Watch命令无法覆盖已经存在/生成的.CSS文件。因此,当文件夹中没有生成的CSS文件时,该命令正常工作。但是,如果文件存在于文件夹上,则我要低于错误。

[12:17:39]错误:eperm:不允许操作,打开'c: my folder project components site-products site-products demo app app css style.cs.css'

 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']);
});

不确定它的相关性,但我不使用Gulp-Compass。我正在使用节点sass。 预先感谢您的帮助。

最终解决了它,这是因为WebPack正在锁定文件。使用Gulp-Chmod绕过它:(

这是最终脚本:

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']);
});

我得到了相同的方法,并通过使用Gulp Cache Control解决了。

我不明白为什么,但是它有效!

对您来说,这就是这样:

var cache = require('gulp-cached');
gulp.task('cache:docsource', function(){
    return gulp.src('./demo/app/**/*.*').pipe(cache('cacheDocSource'));
});
gulp.task('sass', function () {
  return gulp.src('./demo/app/scss/**/*.scss')
    .pipe(cache('cacheDocSource'))
    .pipe(sass({outputStyle: 'compressed'}).on('error', sass.logError))
    .pipe(gulp.dest('./dist/demo/css'));
});
gulp.task('sass:watch', ['cache:docsource'], function () {
  gulp.watch('./demo/app/scss/**/*.scss', ['sass']);
});

您可以使用干净的任务:

// 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');
});

最新更新