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

时间:2015-03-09 10:14:05

标签: javascript node.js gulp browser-cache browserify

我已经开始使用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任务中向main.js添加?v = 0.01但是它生成了

js/main.js?v=0.1

而不是

<script src="js/main.js"></script>

1 个答案:

答案 0 :(得分:0)

我们在所有文件上使用gulp-buster来缓存对静态资产的所有引用。我想你可以把它设置为更具体一些关于它破坏的文件。