diff --git a/views/layout.html b/views/layout.html
index 273a344750..82150a0a8e 100644
--- a/views/layout.html
+++ b/views/layout.html
@@ -72,6 +72,7 @@ jQuery('.toplevel_page_mailpoet-newsletters.menu-top-last')
<% block after_translations %><% endblock %>
<%= javascript(
+ 'admin_vendor_chunk.js',
'admin_vendor.js'
)%>
diff --git a/webpack.config.js b/webpack.config.js
index b171ac4256..cbc6ce5df1 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -275,10 +275,22 @@ const adminConfig = {
priority: 1,
enforce: true,
},
- admin_vendor: {
- name: 'admin_vendor',
+ admin_vendor_chunk: {
+ name: 'admin_vendor_chunk',
+ test: (module, chunks) => {
+ // add all modules from 'admin_vendor' entrypoint
+ if (chunks.some((chunk) => chunk.name === 'admin_vendor')) {
+ return true;
+ }
+
+ // add admin/form_editor/newsletter_editor shared modules
+ const filteredChunks = chunks.filter((chunk) => {
+ return ['admin', 'form_editor', 'newsletter_editor'].includes(chunk.name);
+ });
+ return filteredChunks.length > 1;
+ },
+ enforce: true,
chunks: (chunk) => ['admin_vendor', 'admin', 'form_editor', 'newsletter_editor'].includes(chunk.name),
- minChunks: 2,
priority: 0,
},
}