Merge branch 'winh-webpack-concatenated-module' into 'master'
Fix Webpack config for ConcatenatedModule Closes #41649 See merge request gitlab-org/gitlab-ce!16219
This commit is contained in:
commit
1d7b46062f
|
@ -1,5 +1,6 @@
|
|||
'use strict';
|
||||
|
||||
var crypto = require('crypto');
|
||||
var fs = require('fs');
|
||||
var path = require('path');
|
||||
var webpack = require('webpack');
|
||||
|
@ -179,15 +180,34 @@ var config = {
|
|||
if (chunk.name) {
|
||||
return chunk.name;
|
||||
}
|
||||
return chunk.mapModules((m) => {
|
||||
const pagesBase = path.join(ROOT_PATH, 'app/assets/javascripts/pages');
|
||||
if (m.resource.indexOf(pagesBase) === 0) {
|
||||
return path.relative(pagesBase, m.resource)
|
||||
.replace(/\/index\.[a-z]+$/, '')
|
||||
.replace(/\//g, '__');
|
||||
|
||||
const moduleNames = [];
|
||||
|
||||
function collectModuleNames(m) {
|
||||
// handle ConcatenatedModule which does not have resource nor context set
|
||||
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
|
||||
|
|
Loading…
Reference in New Issue