我已经开始使用browserify而不是requirejs,在requireJS上,我可以在配置中使用urlArgs,并在更改js代码时给出新版本号。这样浏览器就不会使用以前缓存的 js 文件。
我找不到如何添加这个。这是我当前的gulp文件,
.....
gulp.task('browserify', function () {
var browserified = transform(function(filename) {
var b = browserify(filename);
return b.bundle();
});
return gulp.src(['./js/main.js'])
.pipe(browserified)
// .pipe(uglify()) // commented out on testing environment.
.pipe(gulp.dest('./dist/js'));
});
....
gulp.task('html', function() {
return gulp.src('./src/index.html')
.pipe(htmlreplace({
'css': 'css/main.css',
'js': {
src: [
... // infrastructural js files / plugins
'js/main.js'
]
}
}))
.pipe(gulp.dest('./dist/'));
});
.....
gulp.task('default', ['browserify', 'html'], function (callback) {
callback();
console.log('nPlaced optimized files in ' + chalk.magenta('dist/n'));
});
我试图在 htmlreplace 任务中添加 ?v=0.01 到 main.js但它产生了
js/main.js?v=0.1
而不是
<script src="js/main.js"></script>
我们在所有文件上使用gulp-buster来缓存所有对静态资产的引用。我想您可以将其设置为更具体地说明它破坏了哪些文件。