From dd75c337e5ee036fca8188d5b7adbf6e7725570f Mon Sep 17 00:00:00 2001 From: Mike Greiling Date: Thu, 1 Feb 2018 16:01:36 -0600 Subject: update webpack helper to automatically include route-based entry points --- app/helpers/webpack_helper.rb | 18 ++++++++++++++++++ app/views/layouts/_head.html.haml | 1 + 2 files changed, 19 insertions(+) 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? -- cgit v1.2.1