Подтвердить что ты не робот

Gulp - настроить все файлы в папке и ее подпапках

Я хотел бы добавить задачу watch в gulp ко всем файлам js в frontend/js и любых других js файлах ниже

 gulp.watch('./frontend/js/**/*.js', ['browserify']);

Это будет нацелено только на файлы js на одну папку глубиной

4b9b3361

Ответ 1

Он должен соответствовать любому числу подкаталогов:

** Если "globstar" один в части пути, он соответствует нулевому или более каталогам и подкаталогам, ищущим совпадения. Он не сканирует символические каталоги.

https://github.com/isaacs/node-glob

Есть ли у вас символические каталоги?

Symlinks

Я не думаю, что вы получите gulp, чтобы пересечь ваши символические каталоги. Я рекомендую вам взглянуть на node.js поиск рекурсивного каталога fs.readdir и посмотреть, можно ли применить какое-либо из этих решений к вашему прецеденту. Ничто в вопросе или ответах специально не ссылается на символические ссылки, поэтому я не знаю, есть ли там решение для вас или нет. Если вы можете получить массив разыменованных путей, используя одно из этих решений, вы можете просто передать массив в gulp.src().

Ответ 2

Я просто немного тестировал - и это на самом деле прекрасно работает для меня.

В настоящее время у меня есть следующая структура -

--apps
  --scripts
  ----test.js
  ----test-folder
  ------test2.js
  ------test-folder-deep
  --------test3.js
  --myApp
  ----scripts-symlinked (symlinked to apps/scripts)
  ----gulpfile.js

Я установил свою папку symlink (на Mac - из папки "myApp" ), используя:

ln -s /Users/kandrews/apps/scripts ./scripts-symlinked

В моем gulpfile.js у меня есть следующее:

var gulp = require('gulp'),
    jshint = require('gulp-jshint');

gulp.task('jshint', function () {
    gulp.src('./scripts-symlinked/**/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'));
});

gulp.task('watch', function () {
    gulp.watch('./scripts-symlinked/**/*.js', ['jshint']);
});

Работает отлично. Я также попробовал это в подкаталоге ( "scripts/symlinked-scripts" ) и был успешным.