gulp-clean-css无法在一个特定目录中工作?

时间:2017-08-03 07:16:03

标签: javascript html css gulp minify

我正在使用gulp-clean-css和我的gulp构建系统,但clean-css并没有缩小文件。如果我将目标目录更改为其他任何目录,它将正常工作并缩小文件。目标目录“build / css /".

这是我的代码:

gulp.src ("css/*.css")
.pipe (cleancss ({ level: 2 }))
.pipe (gulp.dest ("build/css"));

工作代码但在错误的目录中:

gulp.src ("css/*.css")
.pipe (cleancss ({ level: 2 }))
.pipe (gulp.dest ("build/csss"));

在cleancss的命令行版本中:

cleancss css/game.css -o build/css/game.css

没有任何问题,它可以正常工作。

2 个答案:

答案 0 :(得分:1)

似乎原因是cleancss试图重写现有(原始)CSS文件。也许原始CSS文件被阻止进行更改,实际上会阻止您删除原始* .css文件。

所以你有两个选择:

  1. 更改目标文件夹,它将允许解决冲突。
  2. 重命名已清理的CSS文件并放入同一文件夹。
  3. 如果您在原始文件夹中保存已清理文件非常重要,请重命名已清除的文件。另外,建议在清理之前连接所有CSS文件。它将允许您在页面加载上节省一些额外的时间。

    gulp.src("css/*.css")
    .pipe(cleancss ({ level: 2 }))
    .pipe(concat('styles.css'))
    .pipe(rename('styles.min.css'))
    .pipe(gulp.dest ("build/csss"));
    

    别忘了安装所需的模块。

    var concat = require('gulp-concat');
    var rename = require('gulp-rename');
    

答案 1 :(得分:1)

所以我想出了问题所在。在我正在使用的另一项任务中,我告诉csslint在我不应该的时候输送到gulp.dest ("build/css")。然后cleancss试图覆盖该文件,但无法进行。

只需删除csslint管道到build/css的行,就可以解决整个问题。