我想选择几个文件,并从中生成连接文件。还想连接我更改的文件。
这是我的资产树:gulp - 如何连接多个文件与手表?
assets
- css
- js
- sass
- _midia_queries.scss
- media-combine.scss
- query.scss
所以,我要生成maximum.css(./assets/css/media-combine.min.css)和medium.css( ./assets/css/media-combine.min.css,./assets/css/query.min.css)。
两者.min文件已生成我的css任务。请看下图:
gulp.task('css', function (done) {
gulp.src(paths.sass.src)
.pipe(plugins.changed('dist'))
.pipe(plugins.sass())
.pipe(plugins.combineMediaQueries())
.pipe(plugins.autoprefixer())
.pipe(isProduction ? plugins.minifyCss() : gutil.noop())
.pipe(isProduction ? plugins.rename({ suffix: ".min" }) : gutil.noop())
.pipe(gulp.dest(paths.css.dest))
.on("end", done);
});
而且我CONCAT,CSS任务是用我的坏的多代文件的方法:
gulp.task('concat-css', ['css'], function (done) {
concatType("css", done);
});
function concatType (type, done) {
if (isProduction) {
var task = gulp;
filesToConcat[type].forEach(function (value) {
value.files.forEach(function (file, fileIndex) {
value.files[fileIndex] = paths[type].dest + file;
});
gutil.log('File', gutil.colors.green(value.compiled), 'is beign concatenated');
task = gulp.src(value.files)
.pipe(plugins.concat(value.compiled))
.pipe(gulp.dest(paths[type].dest));
gutil.log('Ready to go!');
});
task.on("end", done);
}
}
更新
当我我的控制台上输入一饮而尽 /终端,它运行完美我的css和concat-css任务,但是,当手表任务是由一个文件改变触发的,两者都运行,但是,只有css工作。我的.min文件已更新,但是,我的连接文件不是。
任何想法来解决这个问题?谢谢。
难道这是由于这一口默认情况下同时运行任务的事实呢?你的css和css-concat任务可能会同时运行。 [这SO帖子可能会帮助](http://stackoverflow.com/questions/22824546/how-to-run-gulp-tasks-synchronously-one-after-the-other) – jonowzz
它帮助。我做了一些改变。所以,现在唯一的问题是当我的* .scss *文件被更新时,它表示它连接我的文件,但它不会发生。 – klauskpm
只尝试引用默认和监视任务中的'concat-css'脚本,否则您将运行css部分两次。即。 'gulp.task(“default”,['concat-css','watch']);'和'gulp.watch(paths.sass.src,[“concat-css”])' – jonowzz