首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Gulp sass无法覆盖已存在的文件

Gulp sass无法覆盖已存在的文件
EN

Stack Overflow用户
提问于 2017-05-05 15:04:17
回答 3查看 1K关注 0票数 1

Gulp /gulp命令无法覆盖已存在的/生成的.css文件。因此,当文件夹中没有生成css文件时,该命令可以正常工作。但是,如果文件存在于文件夹中,我会得到下面的错误。

12:17:39错误:错误:不允许操作,请打开'C:\My folder\project\components\site-products\demo\app\css\style.css‘

代码语言:javascript
复制
 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。我改用node-sass。提前感谢您的帮助。

EN

回答 3

Stack Overflow用户

发布于 2017-05-12 16:42:18

最后解决了,就是因为webpack在锁文件。使用gulp-chmod绕过它:)

下面是最终的脚本:

代码语言:javascript
复制
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']);
});
票数 1
EN

Stack Overflow用户

发布于 2018-05-23 23:52:31

我得到了同样的结果,并通过使用gulp缓存控制解决了这个问题。

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

对你来说,应该是这样的:

代码语言:javascript
复制
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']);
});
票数 1
EN

Stack Overflow用户

发布于 2017-05-11 16:59:24

您可以使用clean任务:

代码语言:javascript
复制
// 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');
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43798562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档