文件名中的WebPack Cache破坏哈希永远不会改变

时间:2016-08-05 17:09:46

标签: gulp webpack

我正在尝试让gulp文件输出中的缓存清除工作。目前它输出一个这样的文件:main.2d06434c1c57525870ac-e7615836.js,但每当我修改typescript文件并重建文件名中的哈希时,输出总是一样的。

我已经尝试了内置的webpack哈希和gulp乙烯基命名哈希来查看其中一个配置是否有问题但是每次重建时它们的输出文件名是相同的。

以下是我的构建器任务的相关部分。谢谢!

var packer = gulp.src(['./src/basePolyfills.ts', './src/external.ts', './src/main.ts'])
.pipe(named())
.pipe(webpack({
        output: { filename: '[name].[hash].js' },
        module: {
                loaders: [
            { test: /\.ts$/, loader: 'ts' },
            { test: /\.html$/, loader: 'html' }
                ]
        },
        resolve: { extensions: ['', '.js', '.ts'] }
}))
.pipe(hash())
.pipe(gulp.dest('./wwwroot/js/'));

1 个答案:

答案 0 :(得分:0)

你的hash()来自哪里?据我所知,webpack会自动计算chunkhashes。请注意,“hash”和“chunkhash”之间存在差异。 chunkhash是每个块的哈希值,而“哈希”似乎是所有文件的哈希值。

你可以尝试:

 var packer = gulp.src(['./src/basePolyfills.ts', './src/external.ts', './src/main.ts'])
.pipe(named())
.pipe(webpack({
        output: { filename: '[name].[chunkhash].js' },
        module: {
                loaders: [
            { test: /\.ts$/, loader: 'ts' },
            { test: /\.html$/, loader: 'html' }
                ]
        },
        resolve: { extensions: ['', '.js', '.ts'] }
}))
.pipe(gulp.dest('./wwwroot/js/'));