summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJacob Schatz <jschatz@gitlab.com>2017-12-21 17:16:48 +0000
committerJacob Schatz <jschatz@gitlab.com>2017-12-21 17:16:48 +0000
commitb8d79cc479200ff714f89dc43a3bbec18af3c5b5 (patch)
tree1a2419c957f970b73bf0c5e11ef72d2ebfc813ae
parent92e15071c13f65cf7250315f1a138284880b0074 (diff)
parentc46f7b2a2620a5b90003b40727bb3c1705dd1a0f (diff)
downloadgitlab-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.js4
-rw-r--r--app/assets/javascripts/pages/users/show/index.js3
-rw-r--r--config/webpack.config.js9
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('_');
}),