如何findgulp.dest()中父目录的path?
我是Gulp的新来者,当我尝试将我的文件输出到他们父母的path时,我得到了股票。
我的目录是这样的:
app/page_a/less/a.less app/page_a/css
我的目标是:
app/page_a/less/a.less app/page_a/css/a.css
这是我在做什么:
我使用**是因为我想匹配我所有的page_ *模块。
gulp.task('test', function () { var files = ['./app/**/*.less']; return gulp.src(files, { base: '.' // Now the base url becomes where the *.less is. }) .pipe(less()) .pipe(gulp.dest('.')); });
我的结果:(这显然是错误:()
app/page_a/less/a.less app/page_a/less/a.css app/page_a/css
那么我怎样才能输出*.css
到相应的app/page_*/css
path?
您在gulp.src()
的base
选项中指定的path不是相对于每个相应的.less
文件,而是相对当前的工作目录。 这通常是你的Gulpfile.js
所在的目录。
你实际上想要做的是在less()
插件运行后改变每个生成的.css
文件的path,所以当.css
文件被写入gulp.dest()
所指定的目录时, /less/
部分path已被replace为/css/
。
这正是gulp-rename
插件的作用:
var gulp = require('gulp'); var less = require('gulp-less'); var rename = require('gulp-rename'); gulp.task('default', function () { return gulp.src( './app/**/*.less') .pipe(less()) .pipe(rename(function(file) { file.dirname = file.dirname.replace(/less$/, "css"); })) .pipe(gulp.dest('./app/')); });
用gulp.dest('。')你说'在这里'尝试着:
.pipe(gulp.dest('./app/page_a/css/'));
这应该是工作