mirror of https://github.com/webpack/webpack.git
Merge pull request #7921 from webpack/bugfix/contenhash-id
chunk ids contribute to contenthash for javascript
This commit is contained in:
commit
0e60343dca
|
|
@ -135,6 +135,8 @@ class JavascriptModulesPlugin {
|
|||
const template = chunk.hasRuntime()
|
||||
? compilation.mainTemplate
|
||||
: compilation.chunkTemplate;
|
||||
hash.update(`${chunk.id} `);
|
||||
hash.update(chunk.ids ? chunk.ids.join(",") : "");
|
||||
template.updateHashForChunk(hash, chunk);
|
||||
for (const m of chunk.modulesIterable) {
|
||||
if (typeof m.source === "function") {
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
module.exports = "chunk";
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
it("should compile and run the test", function () {});
|
||||
|
||||
if(Math.random() < -1) {
|
||||
import(/* webpackChunkName: "chunk" */ "./chunk");
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
var fs = require("fs");
|
||||
|
||||
var findFile = function(files, regex) {
|
||||
return files.find(function(file) {
|
||||
if (regex.test(file)) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const allFilenameHashes = new Set();
|
||||
const allChunkHashes = new Set();
|
||||
|
||||
module.exports = {
|
||||
findBundle: function(i, options) {
|
||||
var files = fs.readdirSync(options.output.path);
|
||||
|
||||
const filename = findFile(files, new RegExp(`^bundle${i}`));
|
||||
const filenameHash = /\.([a-f0-9]+)\.js$/.exec(filename)[1];
|
||||
allFilenameHashes.add(filenameHash);
|
||||
|
||||
const chunk = findFile(files, new RegExp(`^chunk${i}`));
|
||||
const chunkHash = /\.([a-f0-9]+)\.js$/.exec(chunk)[1];
|
||||
allChunkHashes.add(chunkHash);
|
||||
|
||||
return "./" + filename;
|
||||
},
|
||||
afterExecute: () => {
|
||||
expect(allFilenameHashes.size).toBe(2);
|
||||
expect(allChunkHashes.size).toBe(2);
|
||||
}
|
||||
};
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
module.exports = [
|
||||
{
|
||||
mode: "production",
|
||||
name: "normal-ids",
|
||||
output: {
|
||||
filename: "bundle0.[contenthash:6].js",
|
||||
chunkFilename: "chunk0.[contenthash:6].js"
|
||||
},
|
||||
optimization: {
|
||||
chunkIds: "size",
|
||||
moduleIds: "named"
|
||||
}
|
||||
},
|
||||
{
|
||||
mode: "production",
|
||||
name: "normal-ids",
|
||||
output: {
|
||||
filename: "bundle1.[contenthash:6].js",
|
||||
chunkFilename: "chunk1.[contenthash:6].js"
|
||||
},
|
||||
optimization: {
|
||||
chunkIds: "named",
|
||||
moduleIds: "named"
|
||||
}
|
||||
}
|
||||
];
|
||||
Loading…
Reference in New Issue