diff options
author | Jacob Schatz <jschatz@gitlab.com> | 2017-12-21 17:16:48 +0000 |
---|---|---|
committer | Jacob Schatz <jschatz@gitlab.com> | 2017-12-21 17:16:48 +0000 |
commit | b8d79cc479200ff714f89dc43a3bbec18af3c5b5 (patch) | |
tree | 1a2419c957f970b73bf0c5e11ef72d2ebfc813ae | |
parent | 92e15071c13f65cf7250315f1a138284880b0074 (diff) | |
parent | c46f7b2a2620a5b90003b40727bb3c1705dd1a0f (diff) | |
download | gitlab-ce-b8d79cc479200ff714f89dc43a3bbec18af3c5b5.tar.gz |
Merge branch 'fix-webpack-chunk-naming' into 'master'
Properly name webpack chunks for dynamic imports
See merge request gitlab-org/gitlab-ce!16066
-rw-r--r-- | app/assets/javascripts/dispatcher.js | 4 | ||||
-rw-r--r-- | app/assets/javascripts/pages/users/show/index.js | 3 | ||||
-rw-r--r-- | config/webpack.config.js | 9 |
3 files changed, 13 insertions, 3 deletions
diff --git a/app/assets/javascripts/dispatcher.js b/app/assets/javascripts/dispatcher.js index 07df3c216b1..118437b82a3 100644 --- a/app/assets/javascripts/dispatcher.js +++ b/app/assets/javascripts/dispatcher.js @@ -110,6 +110,8 @@ import Activities from './activities'; return false; } + const fail = () => Flash('Error loading dynamic module'); + path = page.split(':'); shortcut_handler = null; @@ -540,7 +542,7 @@ import Activities from './activities'; new CILintEditor(); break; case 'users:show': - new UserCallout(); + import('./pages/users/show').then(m => m.default()).catch(fail); break; case 'admin:conversational_development_index:show': new UserCallout(); diff --git a/app/assets/javascripts/pages/users/show/index.js b/app/assets/javascripts/pages/users/show/index.js new file mode 100644 index 00000000000..f18f98b4e9a --- /dev/null +++ b/app/assets/javascripts/pages/users/show/index.js @@ -0,0 +1,3 @@ +import UserCallout from '~/user_callout'; + +export default () => new UserCallout(); diff --git a/config/webpack.config.js b/config/webpack.config.js index 6daef243991..f7063442618 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -176,8 +176,13 @@ var config = { return chunk.name; } return chunk.mapModules((m) => { - var chunkPath = m.request.split('!').pop(); - return path.relative(m.context, chunkPath); + 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, '__'); + } + return path.relative(m.context, m.resource); }).join('_'); }), |