Глобус Node.js включает / исключает файлы

Это мой текущий код для копирования соответствующих файлов из моего источника в мою директорию сборки. Это не работает, как ожидалось

return gulp.src([
    'src/**/*',
    '!src/**/*(*.sass|*.scss|*.js)',
    '!src/(components|config|elements|less|sass|scss|platforms)',
    'src/console.js',
    'src/cordova.js',
    'src/config.xml',
]).pipe(plugins.copy("www", {prefix: 1}));

Моя идея заключается в следующем:

  1. Выбрать все файлы и папки в src
  2. Удалите все файлы js и sass, потому что они скомпилированы / concat / minified и скопированы для создания другой задачи
  3. Однако console.js и cordova.js должны быть скопированы, поэтому я хочу включить их в глобус

Ну, я думал, что порядок элементов в globArray является приоритетом или чем-то таким, что, например, console.js будет повторно включено после его фильтрации. Это не так:(

Что я могу сделать?

1 ответ

Таким образом, реальная проблема, с которой вы сталкиваетесь, - это отсутствие возможности "отлаживать" или "проверять" то, что в настоящее время обрабатывается в потоке gulp. В моем рабочем процессе два незаменимых плагина gulp, помогающие понять, что происходит:

  • Глоток-Util
  • глоток переименование

    var gutil = require('gulp-util'); var rename = require('gulp-rename');

Теперь попробуйте добавить этот фрагмент кода в ваш пример следующим образом:

var gutil = require('gulp-util');
var rename = require('gulp-rename');
.....

return gulp.src([
    'src/**/*',
    '!src/**/*(*.sass|*.scss|*.js)',
    '!src/(components|config|elements|less|sass|scss|platforms)',
    'src/console.js',
    'src/cordova.js',
    'src/config.xml',
]).pipe(rename(function(filepath) {
          gutil.log(filepath.basename);
})).pipe(plugins.copy("www", {prefix: 1}));

Затем все, что вам нужно сделать, это посмотреть на вывод в ваших журналах, чтобы увидеть, какие файлы обрабатываются, и затем соответствующим образом обновить свою глобализацию.

Кроме того, вам лучше проверить свои пути один за другим или парами, чтобы увидеть, что вы на правильном пути, и поэтому вы не перегружены, когда все шары не работают должным образом. Выделите глобальную проблему и обновите ее соответствующим образом.

Также просто подсказка, чтобы вы были на правильном пути, этот шар:

'!src/**/*(*.sass|*.scss|*.js)'

должно быть:

'!src/**/*.{sass,scss,js}'

Я надеюсь, что это приведет вас на правильный путь!

Другие вопросы по тегам