使用 gulp-inject:如何将查询字符串添加到注入的文件名
Using gulp-inject: How to add query string to injected filename
我使用 gulp-inject 添加要加载的文件到 index.html。为了强制浏览器重新加载 js 脚本,我想在注入 index.html.
的文件名中添加一个查询字符串
我怀疑这可以通过 gulp-inject 的转换函数实现。但是阅读文档我不明白它是如何解决的。你呢?
好的,知道怎么做了。
像这样添加一个转换函数:
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));
});
我使用 gulp-inject 添加要加载的文件到 index.html。为了强制浏览器重新加载 js 脚本,我想在注入 index.html.
的文件名中添加一个查询字符串我怀疑这可以通过 gulp-inject 的转换函数实现。但是阅读文档我不明白它是如何解决的。你呢?
好的,知道怎么做了。
像这样添加一个转换函数:
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));
});