diff options
author | Mike Greiling <mike@pixelcog.com> | 2018-02-01 16:01:36 -0600 |
---|---|---|
committer | Mike Greiling <mike@pixelcog.com> | 2018-02-01 20:50:16 -0600 |
commit | dd75c337e5ee036fca8188d5b7adbf6e7725570f (patch) | |
tree | 140b62739a75a412b5ddbe130d597f287707eebe | |
parent | 900124810cd8d456644b9722d5d703abc751f217 (diff) | |
download | gitlab-ce-dd75c337e5ee036fca8188d5b7adbf6e7725570f.tar.gz |
update webpack helper to automatically include route-based entry points
-rw-r--r-- | app/helpers/webpack_helper.rb | 18 | ||||
-rw-r--r-- | app/views/layouts/_head.html.haml | 1 |
2 files changed, 19 insertions, 0 deletions
diff --git a/app/helpers/webpack_helper.rb b/app/helpers/webpack_helper.rb index 77433acb92a..9d071f2d59a 100644 --- a/app/helpers/webpack_helper.rb +++ b/app/helpers/webpack_helper.rb @@ -5,6 +5,24 @@ module WebpackHelper javascript_include_tag(*gitlab_webpack_asset_paths(bundle, force_same_domain: force_same_domain)) end + def webpack_controller_bundle_tags + bundles = [] + segments = [*controller.controller_path.split('/'), controller.action_name].compact + + until segments.empty? + begin + asset_paths = gitlab_webpack_asset_paths("pages.#{segments.join('.')}", extension: 'js') + bundles.unshift(*asset_paths) + rescue Webpack::Rails::Manifest::EntryPointMissingError + # no bundle exists for this path + end + + segments.pop + end + + javascript_include_tag(*bundles) + end + # override webpack-rails gem helper until changes can make it upstream def gitlab_webpack_asset_paths(source, extension: nil, force_same_domain: false) return "" unless source.present? diff --git a/app/views/layouts/_head.html.haml b/app/views/layouts/_head.html.haml index ea13a5e6d62..1403c8329c8 100644 --- a/app/views/layouts/_head.html.haml +++ b/app/views/layouts/_head.html.haml @@ -41,6 +41,7 @@ = webpack_bundle_tag "webpack_runtime" = webpack_bundle_tag "common" = webpack_bundle_tag "main" + = webpack_controller_bundle_tags = webpack_bundle_tag "raven" if current_application_settings.clientside_sentry_enabled = webpack_bundle_tag "test" if Rails.env.test? |