我今天开始研究gulp.js来编译我较少的文件等。
我已经启动并运行了一个任务,但编译的文件都放在同一个文件夹中 - 不维护源层次结构。
有没有办法确保输出保持原始文件结构?
我是大口大口的新手,所以可能没有正确执行此操作。
这是我的gulp文件(与Less有关的部分):
var sourceLess = 'app/assets/stylesheets/less';
var targetCss = 'public/css2';
// Compile Our Less
gulp.task('less', function() {
return gulp.src([sourceLess + '/my-bootstrap-theme.less', sourceLess + '/themes/*.less'])
.pipe(less())
.pipe(minifyCss())
.pipe(gulp.dest(targetCss));
});
我希望将源主题文件夹中的较少文件放置在目标主题文件夹中。我缺少哪些选项?
我是否必须将它们作为单独的任务运行?
谢谢
更新:我已经查看了建议的帖子,并将我的路径更改为:
gulp.src([sourceLess + '/**/my-bootstrap-theme.less', sourceLess + '/themes/**/*.less', sourceLess + '/responsive.less'], {
base: 'sourceLess'
})
我还将目录变量更改为:
var sourceLess = './app/assets/stylesheets/less';
var targetCss = './public/css2';
但它不会产生我期望themes
文件夹。
保留子文件夹,则必须在选项中定义基文件夹(第二个参数)例如,要将"assets/file.doc"保留在"dist/"中:
gulp.src(["assets/file.doc"], {base: "."})
.pipe(gulp.dest("dist/"));
在链接 https://github.com/gulpjs/gulp/issues/151 检查
干杯,赤丹
您需要使用两个流
var sourceLess = 'app/assets/stylesheets/less';
var targetCss = 'public/css2';
gulp.task('less', function() {
// my-bootstrap-theme.less
gulp.src(sourceLess + '/my-bootstrap-theme.less')
.pipe(less())
.pipe(minifyCss())
.pipe(gulp.dest(targetCss));
// themes/*.less
gulp.src(sourceLess + '/themes/*.less')
.pipe(less())
.pipe(minifyCss())
.pipe(gulp.dest(targetCss + '/themes'));
});