Gulp js src - копирование и использование базы

У меня есть задача gulp для копирования js файлов

Это не работает

gulp.src('./**/*.js', {base: '../src/main/'})
    .pipe(gulp.dest('../target/dist'));

Это работает:

gulp.src('../src/main/**/*.js', {base: '../src/main/'})
        .pipe(gulp.dest('../target/dist'));

Итак, зачем использовать базу здесь? если мне нужно поставить весь путь в первом параметре, почему я должен использовать базу?

есть ли официальная документация о gulp src? стоит ли использовать gulp за ворчать с ограниченной документацией?

[ОБНОВЛЕНИЕ НА ОСНОВЕ КОММЕНТАРИИ]
Почему я использую базу?

Пожалуйста, прочтите это Ищете способ скопировать файлы в gulp и переименовать на основе родительского каталога

и более gulp.src может принимать массив путей, поэтому мне нужна база.

Ответ 1

Использование .src() задокументировано на видовом fs github repo: https://github.com/wearefractal/vinyl-fs

Свойство base используется для определения имен файлов при сохранении в .dest().

Я думаю, вам нужно установить текущий рабочий каталог:

gulp
  .src('./**/*.js', {cwd: '../src/main/'})
  .pipe(gulp.dest('../target/dist'))
;

Ответ 2

Вместо этого следует попытаться использовать параметр "root":

 gulp.src('./**/*.js', {root: '../src/main/'})
     .pipe(gulp.dest('../target/dist'));