gulp.dest()方法是用来写文件的,其语法是:
gulp.dest(path[,options]);
path为写入文件的路径;
options为一个可选的对象,通常我们不需要用到;
要想使用好gulp.dest()这个方法,就要理解给它传入的路径参数与最终生成的文件的关系。
gulp的使用流程一般是这样的:首先通过gulp.src()方法获取到我们想要处理的文件流,然后把文件流通过pipe方法导入到gulp的插件中, 最后把经过插件处理后的流再通过pipe方法导入到gulp.dest()中,gulp.dest()方法则把流中的内容写到文件中,这里首先要弄清楚的一点是,我们给gulp.dest()传入的路径参数,只能用来指定要生成的文件的目录,而不能用来指定生成文件的文件名,它生成的文件名是导入到它的文件流自身的文件名,所以生成的文件名是由导入到它的文件流决定的,即使我们给它传入一个带有文件名的路径参数,然后它也会把这个文件名当作目录名,例如:
var gulp = require('gulp');
gulp.task('html', function(){
gulp.src('./src/html/a.html')
.pipe(gulp.dest('./dist/aa.html'));
//最终生成的文件路径为 dist/aa.html/a.html,而不是dist/a.html
});
想要改变文件名,可以使用插件gulp-rename
下面说说生成的文件路径与我们给gulp.dest()方法传入的路径参数之间的关系:
gulp.dest(path)生成的文件路径是我们传入的path参数后面再加上gulp.src()中有通配符开始出现的那部分路径。例如:
var gulp = reruire('gulp');
//有通配符开始出现的那部分路径为 **/*.js
gulp.src('script/**/*.js')
.pipe(gulp.dest('dist')); //最后生成的文件路径为 dist/**/*.js
//如果 **/*.js 匹配到的文件为 jquery/jquery.js ,则生成的文件路径为 dist/jquery/jquery.js