我已经开始使用 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'));
});
我尝试将 ?v=0.01 添加到 htmlreplace 任务内的 main.js 但它产生了
js/main.js?v=0.1
而不是
<script src="js/main.js"></script>
最佳答案
我们使用gulp-buster在所有文件上缓存所有对静态资源的引用。我想您可以将其设置为更具体地说明它破坏的文件。
关于javascript - 使用 browserify 对 js 文件进行版本控制,以防止客户端使用旧的 js 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28939486/