5

我使用gulp-inject添加要加载到 index.html 的文件。为了强制浏览器重新加载 js 脚本,我想在注入 index.html 的文件名中添加一个查询字符串。

我怀疑这可以通过 gulp-inject 的转换功能实现。但是阅读文档我不明白它是如何解决的。你?

4

2 回答 2

7

好的,找到了怎么做。

添加一个像这样的转换函数:

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

仅供参考,我使用gulp-bump更新版本号,并获得我的应用程序的包信息(包括版本号),如下所示:var pjson = require('./package.json');

于 2015-08-27T10:06:55.673 回答
4

基于 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));
});
于 2017-06-30T07:41:46.390 回答