diff --git a/views/layout.html b/views/layout.html
index c69138ea57..b6ca660359 100644
--- a/views/layout.html
+++ b/views/layout.html
@@ -51,6 +51,10 @@ jQuery('.toplevel_page_mailpoet-newsletters.menu-top-last')
<% block translations %><% endblock %>
+<%= javascript(
+ 'admin_vendor.js'
+)%>
+
<% block before_admin_javascript %><% endblock %>
<%= javascript(
diff --git a/webpack.config.js b/webpack.config.js
index 96e52617bb..42312f945a 100644
--- a/webpack.config.js
+++ b/webpack.config.js
@@ -2,7 +2,8 @@ var webpack = require('webpack'),
_ = require('underscore'),
path = require('path'),
baseConfig = {},
- config = [];
+ config = [],
+ globalPrefix = 'MailPoetLib';
baseConfig = {
context: __dirname,
@@ -60,9 +61,17 @@ baseConfig = {
include: require.resolve('underscore'),
loader: 'expose-loader?_',
},
+ {
+ include: require.resolve('react'),
+ loader: 'expose-loader?' + globalPrefix + '.React',
+ },
+ {
+ include: require.resolve('react-string-replace'),
+ loader: 'expose-loader?' + globalPrefix + '.ReactStringReplace',
+ },
{
test: /wp-js-hooks/i,
- loader: 'exports-loader?window.wp.hooks',
+ loader: 'expose-loader?' + globalPrefix + '.Hooks!exports-loader?wp.hooks',
},
{
include: /Blob.js$/,
@@ -111,6 +120,12 @@ config.push(_.extend({}, baseConfig, {
'jquery.serialize_object',
'parsleyjs'
],
+ admin_vendor: [
+ 'react',
+ 'react-dom',
+ 'react-router',
+ 'react-string-replace'
+ ],
admin: [
'subscribers/subscribers.jsx',
'newsletters/newsletters.jsx',
@@ -172,6 +187,7 @@ config.push(_.extend({}, baseConfig, {
]
},
plugins: [
+ new webpack.optimize.CommonsChunkPlugin('admin_vendor', 'admin_vendor.js', ['admin_vendor', 'admin']),
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js')
],
externals: {