Использование gulp-inject: Как добавить строку запроса к введенному имени файла

Я использую gulp-inject для добавления файлов для загрузки в index.html. Чтобы заставить браузер перезагружать js-скрипты, я хочу добавить строку запроса к имени файла, который вставляется в index.html.

Я подозреваю, что это возможно с помощью функции преобразования gulp-inject. Но, читая документы, я не понимаю, как это можно решить. Вы?

2 ответа

Решение

Ок, узнал, как это сделать.

Добавьте функцию преобразования следующим образом:

  transform: function (filepath) {
    arguments[0] = filepath + '?v=' + pjson.version;
    return inject.transform.apply(inject.transform, arguments);
  }

К вашему сведению, я обновляю номер версии, используя gulp-bump, и получаю информацию о пакете для моего приложения (включая номер версии) следующим образом: var pjson = require('./package.json');

На основании ответа EricC полный код будет выглядеть примерно так:

gulp.task('inject', function() {
    return gulp.src(paths.html, {cwd: bases.application})
        .pipe(inject(gulp.src([
            bases.build + 'css/styles.min.css',
            bases.build + 'scripts/app.min.js'
        ]), {
            transform: function (filepath) {
                arguments[0] = filepath + '?v=' + app_version;
                return inject.transform.apply(inject.transform, arguments);
            }
        }
    ))
    .pipe(gulp.dest(bases.build));
});
Другие вопросы по тегам