2016-08-05 17 views
0

Ich versuche, Cache-Busting in meinem Schluck Dateiausgabe zu arbeiten. Momentan gibt es eine Datei wie folgt aus: main.2d06434c1c57525870ac-e7615836.js, aber immer wenn ich Typoskript-Dateien modifiziere und den Hash im Dateinamen wieder erstelle, ist die Ausgabe immer dieselbe.WebPack Cache-Busting-Hash in Dateinamen ändert sich nie

Ich habe versucht, das eingebaute Webpack-Hashing und den Schluck Vinyl-Hashing zu verwenden, um zu sehen, ob etwas mit einer ihrer Konfigurationen nicht stimmt, aber ihr Ausgabedateiname ist bei jeder Neuerstellung gleich.

Hier ist der zugehörige Teil meiner Builder-Aufgabe. Vielen Dank!

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/')); 

Antwort

0

Woher kommt Ihr Hash()? Soweit ich weiß, berechnet Webpack automatisch Chunkhashes. Beachten Sie, dass es einen Unterschied zwischen "Hash" und "Chunkhash" gibt. chunkhash ist ein Hash pro Chunk, während "hash" ein Hash für alle Dateien zu sein scheint.

Können Sie versuchen:

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/'));