使用浏览器对 js 文件进行版本控制,以防止客户端使用旧的 js 文件



我已经开始使用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来缓存所有对静态资产的引用。我想您可以将其设置为更具体地说明它破坏了哪些文件。

最新更新