如何使用 gulp-documentation.js 使 gulp 具有独特的目的地

How to make gulp give unique destinations with gulp-documentation.js

我正在尝试创建一个 gulp 任务,它将生成一个 README.md 包含从我的 javascript 文件中的文档字符串中获取的文档。

我项目中的文件结构如下所示

- Foo
  - foo1.js
  - foo2.js
- Bar
  - Qux
    - qux1.js
    - qux2.js
    - qux3.js
  - bar1.js
  - bar2.js
- Baz
  - baz1.js
  - baz2.js

我正在尝试使用 gulp-documentation 为这些文件夹中的 .js 文件的每个文件夹生成一个 API.md。这样我期望的文件结构看起来像

- Foo
  - API.md (contains docs for foo1 & foo2)
  - foo1.js
  - foo2.js
- Bar
  - Qux
    - API.md (contains docs for qux1, qux2 & qux3)
    - qux1.js
    - qux2.js
    - qux3.js
  - API.md (contains docs for bar1 & bar2)
  - bar1.js
  - bar2.js
- Baz
  - API.md (contains docs for baz1 & baz2)
  - baz1.js
  - baz2.js

我在尝试让 gulp 为每个文件夹指定唯一目的地时遇到问题。 gulp-文档中的示例获取所有文件并生成一个目标。

gulp.task('documentation-multiple-files', function () {
  return gulp.src(['Foo/*.js', 'Bar/*.js', 'Bar/Qux/*.js', 'Baz/*.js'])
    .pipe(gulpDocumentation('md'))
    .pipe(gulp.dest('md-documentation'));
});

谷歌搜索后,我想知道我是否应该使用另一个库来帮助获得我正在寻找的结果? Gulp-rename,gulp-tap,gulp-flatmap 和其他似乎是分割目的地的可能方法?但我不确定...

感谢任何帮助!

const gulp = require("gulp");
const glob = require("glob");
const gulpDocumentation = require("gulp-documentation");

// get only directories as an array
const folders = glob.sync("./**/");

gulp.task('documentation-multiple-files', function () {

  folders.forEach(function (folder) {

    return gulp.src(folder + "/**/*.js")
      .pipe(gulpDocumentation('md', { filename: 'API.md' }))
      .pipe(gulp.dest(folder));
  });
});