鉴于src/
中的以下输入文件,如何输出dist/
文件夹中的文件?
Project
+-- src
| a.md
| b.md
+-- dest
| a/index.html
| b/index.html
// Gulpfile.js
const gulp = require('gulp');
const md = require('gulp-markdown');
gulp.task('md', () => {
return gulp.src('src/**/*.md')
.pipe(md())
.pipe(gulp.dest( // help ))
})
我认为这不是重复的 Gulp.js - Use path from gulp.src() in gulp.dest()。该问题涉及可变目录名和变量文件名。这个问题涉及变量目录名但具有常量文件名。
答案 0 :(得分:3)
尝试使用gulp-rename插件https://www.npmjs.com/package/gulp-rename
您可以使用函数进行名称映射:
const rename = require('gulp-rename');
...
gulp.task('md', () => {
return gulp.src('src/**/*.md')
.pipe(md())
.pipe(rename((path) => {
path.dirname += "/" + path.basename;
path.basename = "index";
})
.pipe(gulp.dest('dest'))
})
答案 1 :(得分:0)
使用gulp-if:
生成强>
npm install gulp-if --save-dev
您的任务
// Gulpfile.js
const gulp = require('gulp');
const md = require('gulp-markdown');
const gulpif = require('gulp-if');
gulp.task('md', () => {
return gulp.src('src/**/*.md')
.pipe(md())
.pipe(gulpif('a.md', gulp.dest('dest/a')))
.pipe(gulpif('b.md', gulp.dest('dest/b')));
})
<强>替代强>
使用gulp-if的else部分,更短但不太可读
gulp.task('md', () => {
return gulp.src('src/**/*.md')
.pipe(md())
.pipe(gulpif('a.md', gulp.dest('dest/a'), gulpif('b.md', gulp.dest('dest/b'))));
})