Как gulp-load-plugins может заменить все gulp- to g?

Стандартные gulp-load-plugins удаляют все имена плагинов gulp-

Но как заставить gulp-load-plugins по умолчанию заменить все имена плагинов, которые начинаются с gulp- в g?

Например

gulp-sass

other-gulp-plugin

переименовать в

gSass

other-gulp-plugin

1 ответ

Из опций gulp-load-plugins:

pattern: ['gulp- ', ' gulp . ',' @ / gulp {-,.} '], // глобус (-ы) для поиска

replaceString: /^gulp(-|.)/, // что удалить из имени модуля при добавлении его в контекст

renameFn: function (name) { ... }, // функция для обработки переименования плагинов (работает по умолчанию)

Таким образом, вам нужно что-то вроде этого (то есть, не проверено)

var plugins = require("gulp-load-plugins")({
  renameFn: function(name) {

    //  if only it were as easy as the below : the simple case
    //  return name.replace(/^@*gulp(-|.)(.)/, 'g\U$2\E');

   // but try this 
    return name.replace(/^@*gulp(-|.)(.)/, function (match, p1, p2) {
       return "g" + p2.toUpperCase(); })
   // p2 is the second capture group
   }
});

Простой случай:

  1. / @ * gulp (- |.): найти шаблоны @gulp-, @gulp., gulp- и gulp.
  2. (.): захватить следующего персонажа
  3. g\U$2\E: заменить только 2-ю группу захвата (.) на
  4. 'g', за которым следует заглавная 2-я группа захвата $ 2 и
  5. конечные заглавные буквы 2-й группы захвата \E [не очень нужны в вашем случае, поскольку вам нужен только один символ].

Я оставил простой случай для инструкции, но вам, вероятно, нужна более длинная некомментированная версия в node / gulp.

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