gulp-clean-css 在一个特定的目录中不起作用?



我在我的gulp构建系统中使用了gulp-clean-css,但是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

它工作正常,没有问题。

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

所以你有两个选择:

  1. 更改目标文件夹,它将允许解决冲突。
  2. 重命名已清理的CSS文件并放入同一文件夹中。

如果将清理的文件保存在原始文件夹中对您很重要,请重命名已清理的文件。还建议在清理之前连接所有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');

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

只需删除csslint管道连接到build/css的行即可解决整个问题。

相关内容

最新更新