Extract React libraries to a separate chunk and expose them globally [PREMIUM-2]
This commit is contained in:
@@ -51,6 +51,10 @@ jQuery('.toplevel_page_mailpoet-newsletters.menu-top-last')
|
|||||||
|
|
||||||
<% block translations %><% endblock %>
|
<% block translations %><% endblock %>
|
||||||
|
|
||||||
|
<%= javascript(
|
||||||
|
'admin_vendor.js'
|
||||||
|
)%>
|
||||||
|
|
||||||
<% block before_admin_javascript %><% endblock %>
|
<% block before_admin_javascript %><% endblock %>
|
||||||
|
|
||||||
<%= javascript(
|
<%= javascript(
|
||||||
|
@@ -2,7 +2,8 @@ var webpack = require('webpack'),
|
|||||||
_ = require('underscore'),
|
_ = require('underscore'),
|
||||||
path = require('path'),
|
path = require('path'),
|
||||||
baseConfig = {},
|
baseConfig = {},
|
||||||
config = [];
|
config = [],
|
||||||
|
globalPrefix = 'MailPoetLib';
|
||||||
|
|
||||||
baseConfig = {
|
baseConfig = {
|
||||||
context: __dirname,
|
context: __dirname,
|
||||||
@@ -60,9 +61,17 @@ baseConfig = {
|
|||||||
include: require.resolve('underscore'),
|
include: require.resolve('underscore'),
|
||||||
loader: 'expose-loader?_',
|
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,
|
test: /wp-js-hooks/i,
|
||||||
loader: 'exports-loader?window.wp.hooks',
|
loader: 'expose-loader?' + globalPrefix + '.Hooks!exports-loader?wp.hooks',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
include: /Blob.js$/,
|
include: /Blob.js$/,
|
||||||
@@ -111,6 +120,12 @@ config.push(_.extend({}, baseConfig, {
|
|||||||
'jquery.serialize_object',
|
'jquery.serialize_object',
|
||||||
'parsleyjs'
|
'parsleyjs'
|
||||||
],
|
],
|
||||||
|
admin_vendor: [
|
||||||
|
'react',
|
||||||
|
'react-dom',
|
||||||
|
'react-router',
|
||||||
|
'react-string-replace'
|
||||||
|
],
|
||||||
admin: [
|
admin: [
|
||||||
'subscribers/subscribers.jsx',
|
'subscribers/subscribers.jsx',
|
||||||
'newsletters/newsletters.jsx',
|
'newsletters/newsletters.jsx',
|
||||||
@@ -172,6 +187,7 @@ config.push(_.extend({}, baseConfig, {
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
|
new webpack.optimize.CommonsChunkPlugin('admin_vendor', 'admin_vendor.js', ['admin_vendor', 'admin']),
|
||||||
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js')
|
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js')
|
||||||
],
|
],
|
||||||
externals: {
|
externals: {
|
||||||
|
Reference in New Issue
Block a user