Fix Webpack config for ConcatenatedModule
This commit is contained in:
parent
b1e1990ee2
commit
6d1548f869
|
@ -1,5 +1,6 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
var crypto = require('crypto');
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var webpack = require('webpack');
|
var webpack = require('webpack');
|
||||||
|
@ -179,15 +180,34 @@ var config = {
|
||||||
if (chunk.name) {
|
if (chunk.name) {
|
||||||
return chunk.name;
|
return chunk.name;
|
||||||
}
|
}
|
||||||
return chunk.mapModules((m) => {
|
|
||||||
const pagesBase = path.join(ROOT_PATH, 'app/assets/javascripts/pages');
|
const moduleNames = [];
|
||||||
if (m.resource.indexOf(pagesBase) === 0) {
|
|
||||||
return path.relative(pagesBase, m.resource)
|
function collectModuleNames(m) {
|
||||||
.replace(/\/index\.[a-z]+$/, '')
|
// handle ConcatenatedModule which does not have resource nor context set
|
||||||
.replace(/\//g, '__');
|
if (m.modules) {
|
||||||
|
m.modules.forEach(collectModuleNames);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
return path.relative(m.context, m.resource);
|
|
||||||
}).join('_');
|
const pagesBase = path.join(ROOT_PATH, 'app/assets/javascripts/pages');
|
||||||
|
|
||||||
|
if (m.resource.indexOf(pagesBase) === 0) {
|
||||||
|
moduleNames.push(path.relative(pagesBase, m.resource)
|
||||||
|
.replace(/\/index\.[a-z]+$/, '')
|
||||||
|
.replace(/\//g, '__'));
|
||||||
|
} else {
|
||||||
|
moduleNames.push(path.relative(m.context, m.resource));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
chunk.forEachModule(collectModuleNames);
|
||||||
|
|
||||||
|
const hash = crypto.createHash('sha256')
|
||||||
|
.update(moduleNames.join('_'))
|
||||||
|
.digest('hex');
|
||||||
|
|
||||||
|
return `${moduleNames[0]}-${hash.substr(0, 6)}`;
|
||||||
}),
|
}),
|
||||||
|
|
||||||
// create cacheable common library bundle for all vue chunks
|
// create cacheable common library bundle for all vue chunks
|
||||||
|
|
Loading…
Reference in New Issue