svfat
@svfat
☺Нужен VPS? Два месяца бесплатно. Смотри профиль☺

Как заставить работать transform в gulp-inject?

Решил попробовать gulp, вожусь с настройкой gulp-inject для добавления зависимостей. Все прекрасно работает, за исключением функции transform. Мне нужно преобразовать url для js файлов с /frontend/src/ на /static/. Пытался так (скопипастил откуда-то):
transform : function ( filePath, file, i, length ) {
                var newPath = filePath.replace('/frontend/src', '');
                console.log('inject script = '+ newPath);
                return '<script src="/static/' + newPath  + '"></script>';
            }

В консоль ничего не выдаёт, в файле в итоге оказываются не преобразованные урлы. Другие советы из инета тоже не помогли. Такое ощущение что мой transform просто не запускается (все время работает дефолтный).
  • Вопрос задан
  • 411 просмотров
Пригласить эксперта
Ответы на вопрос 1
Sergamers
@Sergamers
front-end
Если внимательно почитать доку, то там написан следующий синтаксис
var sources = gulp.src('Какой-то путь',{read: false}),
param = {
      transform: function (filepath) {
        if (filepath.slice(-3) === '.js') {
          var newPath = filepath.slice(6); // Что нужно обрезать
          return '<script src="' + newPath  + '"></script>';
        }else{
          // Use the default transform as fallback:
          return inject.transform.apply(inject.transform, arguments);
        }
      }
    };

gulp.src('Куда мы вставим наши файлы')
  .pipe(plumber()) // обработка ошибок
  .pipe(wiredep()) // bower файлы туда же суем
  .pipe(inject(sources, params)) // вставить свои файлы
  .pipe(gulp.dest('Куда это все сохранить'))
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы