Gulp sass将空的scss文件复制到目标文件夹
Gulp sass copies empty scss files to destination folder
我有个任务:
gulp.task('compile_scss, function() {
return gulp.src('/admin_app/scss/*.scss')
.pipe(sass())
.pipe(dest('/admin_app/css/'))
});
当我添加新的空"。Scss "文件到'/admin_app/Scss/',并从上面运行任务,空"。"Scss"文件被复制到目标文件夹。如果文件不是空的一切都是好的:一个有效的css文件(扩展名为".css")被编译,没有"。复制Scss"文件。问题是当我添加new "时。Scss " file到"/admin_app/Scss/"目录,触发"watch"任务,由于file为空,因此将其复制到目标目录。结果,许多不需要的垃圾是dest文件夹。为什么会发生这种情况,我怎样才能摆脱它?
我的"watch"answers"default"任务:
gulp.task('watch', ['compile_scss'], function() {
apps.forEach(function(appName) {
gulp.watch('/admin_app/scss/*.scss', ['compile_scss']);
});
});
gulp.task('default', ['watch']);
解决这个问题的一种方法是简单地过滤空文件。
试试这样写:
var filter = require('gulp-filter'),
gulp.task('compile_scss, function() {
return gulp.src('/admin_app/scss/*.scss')
.pipe(filter(function(a){ return a.stat && a.stat.size }))
.pipe(sass())
.pipe(dest('/admin_app/css/'))
});
还有一个专门用于此目的的插件。你可以这样使用:
var clip = require('gulp-clip-empty-files'),
gulp.task('compile_scss, function() {
return gulp.src('/admin_app/scss/*.scss')
.pipe(clip())
.pipe(sass())
.pipe(dest('/admin_app/css/'))
});
另外:在编译空文件时,gulp-sass
和底层库中似乎有几个问题的报告。gulp-sass
有一个Github问题,报告这个问题应该在2中解决。X版本的插件。如果你已经在跑步了。X,您面临的问题可能是解决原始问题时引入的问题。
如果您在sass文件夹中添加空scss
文件,请使用下划线前缀:_empty.scss
.
参见此处的"偏导数":http://sass-lang.com/guide#topic-4
您可以创建包含CSS小片段的部分Sass文件可以包含在其他Sass文件中。这是一个很好的方法模块化你的CSS,让它更容易维护。部分只是一个以下划线开头的Sass文件。你可能会说它类似于_partial。scss。下划线让Sass知道这一点该文件只是部分文件,不应该生成它到一个CSS文件。Sass部分与@import指令一起使用。
- 使用Clipboard.js复制span文本
- ZeroClipboard-在复制之前添加到值
- 如何在android中使用phonegap将文件从一个文件夹移动/复制到另一个文件夹
- 为什么HTML5拖放的目标是孩子?(可排序列表)
- 复制图像路径以单击它
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 复制当前url按钮-Javascript
- 对一个对象使用reduce可以返回一个没有't在数组中包含目标字母
- Href:当前DIV中的目标ID
- 具有所有样式的文本正在复制到可编辑文本区域
- 当使用extern和目标JavaScript时,我如何强制Haxe编译器使用require语句
- JavaScript”;复制“;HTML表单
- jsPlumb-拖动克隆而不进行复制
- 如何将给定的curl命令复制为jquery ajax请求
- 以ECMAScript 5及更高版本为目标时,八进制文字不可用
- 将数据从一个工作表复制到另一个工作表;使用目标工作表中的复制数据创建一个表
- 正在复制的ajaxSubmit目标未被替换
- Gulp sass将空的scss文件复制到目标文件夹
- 复制任务覆盖目标父目录
- ES6 仅当属性已存在时才将属性复制到目标