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

标签 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'));
});

我尝试将 ?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/

相关文章:

javascript - 为什么我的 meteor 应用程序创建 "hiddendiv common"div 标签?

javascript - 为什么 .on() 可以工作但 .listenTo() 失败?

javascript - 为什么 `var exports = module.exports = {};` 有效但 `let exports = module.exports = {};` 无效?

javascript - 使用 Gulp 删除所有有异常的文件

javascript - 包括 Jotted 的 Codemirror 插件和 Angular gulp

javascript - 如何将自定义数据传递给我的 Mocha 测试?

php - JavaScript 问题 - 未将前导 '0' 的字符串传递到正确的字符串

javascript - 当尝试使用 "TypeError: Cannot read property ' 调用同一页面对象类中的方法时,Cypress 测试返回 'this' 应该“未定义”

node.js - 如何在本地检查 socket.io 连接?

javascript - Import.meta.env 在生产构建 vitejs 上未定义