2015-08-17 14:23:46 +03:00
|
|
|
var webpack = require('webpack'),
|
|
|
|
_ = require('underscore'),
|
|
|
|
path = require('path'),
|
|
|
|
baseConfig = {},
|
2017-03-01 14:30:24 +03:00
|
|
|
config = [],
|
|
|
|
globalPrefix = 'MailPoetLib';
|
2015-08-17 14:23:46 +03:00
|
|
|
|
|
|
|
baseConfig = {
|
|
|
|
context: __dirname,
|
2015-10-21 15:24:51 -04:00
|
|
|
watch: {
|
|
|
|
aggregateTimeout: 300,
|
|
|
|
poll: true
|
|
|
|
},
|
2015-08-17 14:23:46 +03:00
|
|
|
output: {
|
|
|
|
path: './assets/js',
|
|
|
|
filename: '[name].js',
|
|
|
|
},
|
|
|
|
resolve: {
|
|
|
|
modulesDirectories: [
|
|
|
|
'node_modules',
|
2016-02-22 11:44:06 -05:00
|
|
|
'assets/js/src',
|
2015-08-17 14:23:46 +03:00
|
|
|
],
|
|
|
|
alias: {
|
|
|
|
'handlebars': 'handlebars/dist/handlebars.js',
|
2015-08-19 16:26:38 +03:00
|
|
|
'backbone.marionette': 'backbone.marionette/lib/backbone.marionette',
|
2015-08-21 13:24:06 +03:00
|
|
|
'backbone.supermodel$': 'backbone.supermodel/build/backbone.supermodel.js',
|
2016-01-04 17:02:46 +02:00
|
|
|
'sticky-kit': 'vendor/jquery.sticky-kit.js',
|
2015-08-26 18:24:43 +03:00
|
|
|
'interact$': 'interact.js/interact.js',
|
2015-11-05 17:17:54 +02:00
|
|
|
'spectrum$': 'spectrum-colorpicker/spectrum.js',
|
2017-02-28 17:58:04 +03:00
|
|
|
'wp-js-hooks': 'WP-JS-Hooks/src/event-manager.js',
|
2017-06-15 18:11:05 +01:00
|
|
|
'blob$': 'blob-tmp/Blob.js',
|
2015-11-13 14:45:25 +02:00
|
|
|
'papaparse': 'papaparse/papaparse.min.js',
|
2015-11-24 16:50:57 +02:00
|
|
|
'helpscout': 'helpscout.js',
|
2016-02-20 18:53:24 -05:00
|
|
|
'html2canvas': 'html2canvas/dist/html2canvas.js',
|
2016-02-23 12:49:11 +02:00
|
|
|
'asyncqueue': 'vendor/jquery.asyncqueue.js'
|
2015-08-26 18:24:43 +03:00
|
|
|
},
|
2015-08-17 14:23:46 +03:00
|
|
|
},
|
|
|
|
node: {
|
|
|
|
fs: 'empty'
|
|
|
|
},
|
|
|
|
module: {
|
|
|
|
loaders: [
|
|
|
|
{
|
|
|
|
test: /\.jsx$/,
|
|
|
|
loader: 'babel-loader'
|
2015-08-21 13:24:06 +03:00
|
|
|
},
|
2015-11-04 11:21:08 +01:00
|
|
|
{
|
|
|
|
test: /form_editor\.js$/,
|
|
|
|
loader: 'expose-loader?WysijaForm',
|
|
|
|
},
|
2015-11-02 19:01:01 +01:00
|
|
|
{
|
|
|
|
include: require.resolve('codemirror'),
|
|
|
|
loader: 'expose-loader?CodeMirror',
|
|
|
|
},
|
2015-08-21 13:24:06 +03:00
|
|
|
{
|
|
|
|
include: require.resolve('backbone'),
|
|
|
|
loader: 'expose-loader?Backbone',
|
|
|
|
},
|
|
|
|
{
|
|
|
|
include: require.resolve('underscore'),
|
|
|
|
loader: 'expose-loader?_',
|
|
|
|
},
|
2017-03-01 14:30:24 +03:00
|
|
|
{
|
|
|
|
include: require.resolve('react'),
|
|
|
|
loader: 'expose-loader?' + globalPrefix + '.React',
|
|
|
|
},
|
2017-04-04 15:37:16 +03:00
|
|
|
{
|
|
|
|
include: require.resolve('react-router'),
|
|
|
|
loader: 'expose-loader?' + globalPrefix + '.ReactRouter',
|
|
|
|
},
|
|
|
|
{
|
2017-03-01 14:30:24 +03:00
|
|
|
include: require.resolve('react-string-replace'),
|
|
|
|
loader: 'expose-loader?' + globalPrefix + '.ReactStringReplace',
|
|
|
|
},
|
2017-02-28 17:58:04 +03:00
|
|
|
{
|
|
|
|
test: /wp-js-hooks/i,
|
2017-03-01 14:30:24 +03:00
|
|
|
loader: 'expose-loader?' + globalPrefix + '.Hooks!exports-loader?wp.hooks',
|
2017-02-28 17:58:04 +03:00
|
|
|
},
|
2017-04-04 15:37:16 +03:00
|
|
|
{
|
|
|
|
test: /listing.jsx/i,
|
|
|
|
loader: 'expose-loader?' + globalPrefix + '.Listing!babel-loader',
|
|
|
|
},
|
2017-04-12 19:52:29 +03:00
|
|
|
{
|
|
|
|
include: path.resolve(__dirname, 'assets/js/src/newsletters/badges/stats.jsx'),
|
|
|
|
loader: 'expose-loader?' + globalPrefix + '.StatsBadge!babel-loader',
|
|
|
|
},
|
2017-05-17 21:45:04 -04:00
|
|
|
{
|
2017-05-18 11:29:26 -04:00
|
|
|
include: path.resolve(__dirname, 'assets/js/src/newsletters/types/welcome/scheduling.jsx'),
|
|
|
|
loader: 'expose-loader?' + globalPrefix + '.NewsletterWelcomeNotificationScheduling!babel-loader',
|
2017-05-17 21:45:04 -04:00
|
|
|
},
|
|
|
|
{
|
|
|
|
include: path.resolve(__dirname, 'assets/js/src/newsletters/breadcrumb.jsx'),
|
2017-05-18 11:29:26 -04:00
|
|
|
loader: 'expose-loader?' + globalPrefix + '.NewsletterCreationBreadcrumb!babel-loader',
|
2017-05-17 21:45:04 -04:00
|
|
|
},
|
2015-11-05 17:17:54 +02:00
|
|
|
{
|
|
|
|
include: /Blob.js$/,
|
|
|
|
loader: 'exports-loader?window.Blob',
|
|
|
|
},
|
2015-08-21 13:24:06 +03:00
|
|
|
{
|
2015-09-09 14:05:34 +03:00
|
|
|
test: /backbone.supermodel/,
|
|
|
|
loader: 'exports-loader?Backbone.SuperModel',
|
2015-08-21 13:24:06 +03:00
|
|
|
},
|
2015-08-26 18:24:43 +03:00
|
|
|
{
|
|
|
|
include: require.resolve('handlebars'),
|
|
|
|
loader: 'expose-loader?Handlebars',
|
|
|
|
},
|
2015-11-13 14:45:25 +02:00
|
|
|
{
|
|
|
|
include: /helpscout.js$/,
|
|
|
|
loader: 'exports-loader?window.HS',
|
|
|
|
},
|
2015-11-24 16:50:57 +02:00
|
|
|
{
|
|
|
|
include: /html2canvas.js$/,
|
|
|
|
loader: 'expose-loader?html2canvas',
|
2016-01-05 15:01:30 +02:00
|
|
|
},
|
|
|
|
{
|
|
|
|
include: require.resolve('velocity-animate'),
|
|
|
|
loader: 'imports-loader?jQuery=jquery',
|
|
|
|
},
|
2015-08-17 14:23:46 +03:00
|
|
|
]
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
// Admin
|
|
|
|
config.push(_.extend({}, baseConfig, {
|
|
|
|
name: 'admin',
|
|
|
|
entry: {
|
2016-02-22 15:21:23 +01:00
|
|
|
vendor: [
|
|
|
|
'handlebars',
|
2017-02-28 17:58:04 +03:00
|
|
|
'handlebars_helpers',
|
|
|
|
'wp-js-hooks'
|
2016-02-22 15:21:23 +01:00
|
|
|
],
|
2015-10-02 13:01:27 +02:00
|
|
|
mailpoet: [
|
|
|
|
'mailpoet',
|
|
|
|
'ajax',
|
2016-02-22 15:21:23 +01:00
|
|
|
'date',
|
2016-03-18 16:25:43 +02:00
|
|
|
'i18n',
|
2015-10-02 13:01:27 +02:00
|
|
|
'modal',
|
|
|
|
'notice',
|
2017-04-06 18:44:14 +03:00
|
|
|
'num',
|
2015-12-03 18:26:36 +01:00
|
|
|
'jquery.serialize_object',
|
2017-06-20 10:20:50 +01:00
|
|
|
'parsleyjs',
|
|
|
|
'analytics_event',
|
2015-10-02 13:01:27 +02:00
|
|
|
],
|
2017-03-01 14:30:24 +03:00
|
|
|
admin_vendor: [
|
|
|
|
'react',
|
|
|
|
'react-dom',
|
|
|
|
'react-router',
|
2017-04-04 15:37:16 +03:00
|
|
|
'react-string-replace',
|
2017-04-12 19:52:29 +03:00
|
|
|
'listing/listing.jsx',
|
2017-05-17 21:45:04 -04:00
|
|
|
'newsletters/badges/stats.jsx',
|
|
|
|
'newsletters/breadcrumb.jsx',
|
2017-05-18 11:29:26 -04:00
|
|
|
'newsletters/types/welcome/scheduling.jsx'
|
2017-03-01 14:30:24 +03:00
|
|
|
],
|
2015-08-17 14:23:46 +03:00
|
|
|
admin: [
|
2015-09-01 16:21:25 +02:00
|
|
|
'subscribers/subscribers.jsx',
|
2015-09-04 13:02:23 +02:00
|
|
|
'newsletters/newsletters.jsx',
|
2015-10-13 11:53:20 +02:00
|
|
|
'segments/segments.jsx',
|
2015-10-28 13:18:56 +01:00
|
|
|
'forms/forms.jsx',
|
2015-10-21 15:24:51 -04:00
|
|
|
'settings/tabs.js',
|
2017-06-20 10:20:50 +01:00
|
|
|
'settings/reinstall_from_scratch.js',
|
2015-11-26 20:44:28 -05:00
|
|
|
'subscribers/importExport/import.js',
|
|
|
|
'subscribers/importExport/export.js',
|
2017-04-18 19:15:12 +02:00
|
|
|
'helpscout'
|
2015-08-19 16:26:38 +03:00
|
|
|
],
|
2015-11-04 11:21:08 +01:00
|
|
|
form_editor: [
|
|
|
|
'form_editor/form_editor.js',
|
2015-11-02 19:01:01 +01:00
|
|
|
'codemirror',
|
|
|
|
'codemirror/mode/css/css'
|
2015-10-30 18:12:07 +01:00
|
|
|
],
|
2015-08-19 16:26:38 +03:00
|
|
|
newsletter_editor: [
|
|
|
|
'underscore',
|
|
|
|
'backbone',
|
|
|
|
'backbone.marionette',
|
2015-08-21 13:24:06 +03:00
|
|
|
'backbone.supermodel',
|
2015-08-19 16:26:38 +03:00
|
|
|
'interact.js',
|
|
|
|
'backbone.radio',
|
|
|
|
'select2',
|
2015-08-26 18:24:43 +03:00
|
|
|
'spectrum',
|
2015-08-19 16:26:38 +03:00
|
|
|
'sticky-kit',
|
2015-11-05 17:17:54 +02:00
|
|
|
'blob',
|
2017-06-15 18:11:05 +01:00
|
|
|
'file-saver',
|
2016-01-05 15:01:30 +02:00
|
|
|
'velocity-animate',
|
2015-08-19 16:26:38 +03:00
|
|
|
'newsletter_editor/communicationsFix.js',
|
|
|
|
'newsletter_editor/App',
|
|
|
|
'newsletter_editor/components/config.js',
|
|
|
|
'newsletter_editor/components/styles.js',
|
|
|
|
'newsletter_editor/components/sidebar.js',
|
|
|
|
'newsletter_editor/components/content.js',
|
|
|
|
'newsletter_editor/components/heading.js',
|
|
|
|
'newsletter_editor/components/save.js',
|
2015-12-16 18:06:28 +02:00
|
|
|
'newsletter_editor/components/communication.js',
|
2015-08-19 16:26:38 +03:00
|
|
|
'newsletter_editor/behaviors/BehaviorsLookup.js',
|
|
|
|
'newsletter_editor/behaviors/ColorPickerBehavior.js',
|
|
|
|
'newsletter_editor/behaviors/ContainerDropZoneBehavior.js',
|
|
|
|
'newsletter_editor/behaviors/DraggableBehavior.js',
|
2016-06-06 18:53:13 +03:00
|
|
|
'newsletter_editor/behaviors/HighlightEditingBehavior.js',
|
2015-08-19 16:26:38 +03:00
|
|
|
'newsletter_editor/behaviors/ResizableBehavior.js',
|
|
|
|
'newsletter_editor/behaviors/SortableBehavior.js',
|
2016-08-19 14:57:14 +03:00
|
|
|
'newsletter_editor/behaviors/ShowSettingsBehavior.js',
|
2016-11-11 15:30:09 +02:00
|
|
|
'newsletter_editor/behaviors/TextEditorBehavior.js',
|
2015-08-19 16:26:38 +03:00
|
|
|
'newsletter_editor/blocks/base.js',
|
|
|
|
'newsletter_editor/blocks/container.js',
|
|
|
|
'newsletter_editor/blocks/button.js',
|
|
|
|
'newsletter_editor/blocks/image.js',
|
|
|
|
'newsletter_editor/blocks/divider.js',
|
|
|
|
'newsletter_editor/blocks/text.js',
|
|
|
|
'newsletter_editor/blocks/spacer.js',
|
|
|
|
'newsletter_editor/blocks/footer.js',
|
|
|
|
'newsletter_editor/blocks/header.js',
|
|
|
|
'newsletter_editor/blocks/automatedLatestContent.js',
|
|
|
|
'newsletter_editor/blocks/posts.js',
|
2016-02-22 15:21:23 +01:00
|
|
|
'newsletter_editor/blocks/social.js'
|
|
|
|
]
|
2015-08-17 14:23:46 +03:00
|
|
|
},
|
|
|
|
plugins: [
|
2017-03-01 14:30:24 +03:00
|
|
|
new webpack.optimize.CommonsChunkPlugin('admin_vendor', 'admin_vendor.js', ['admin_vendor', 'admin']),
|
2016-02-22 15:21:23 +01:00
|
|
|
new webpack.optimize.CommonsChunkPlugin('vendor', 'vendor.js')
|
2015-08-17 14:23:46 +03:00
|
|
|
],
|
|
|
|
externals: {
|
2015-08-25 14:48:04 +03:00
|
|
|
'jquery': 'jQuery',
|
|
|
|
'tinymce': 'tinymce'
|
2015-08-17 14:23:46 +03:00
|
|
|
}
|
|
|
|
}));
|
|
|
|
|
|
|
|
// Public
|
|
|
|
config.push(_.extend({}, baseConfig, {
|
|
|
|
name: 'public',
|
|
|
|
entry: {
|
2015-11-05 14:16:44 +01:00
|
|
|
public: [
|
|
|
|
'mailpoet',
|
|
|
|
'ajax',
|
2016-03-22 17:23:33 +01:00
|
|
|
'iframe',
|
2015-11-05 14:16:44 +01:00
|
|
|
'jquery.serialize_object',
|
|
|
|
'public.js'
|
|
|
|
]
|
2015-08-17 14:23:46 +03:00
|
|
|
},
|
|
|
|
externals: {
|
|
|
|
'jquery': 'jQuery'
|
|
|
|
}
|
|
|
|
}));
|
|
|
|
|
2017-04-18 19:15:12 +02:00
|
|
|
// mp2migrator
|
|
|
|
config.push(_.extend({}, baseConfig, {
|
|
|
|
name: 'mp2migrator',
|
|
|
|
entry: {
|
|
|
|
mp2migrator: [
|
|
|
|
'mp2migrator.js'
|
|
|
|
]
|
|
|
|
},
|
|
|
|
externals: {
|
2017-05-17 17:35:42 +02:00
|
|
|
'jquery': 'jQuery',
|
|
|
|
'mailpoet': 'MailPoet'
|
2017-04-18 19:15:12 +02:00
|
|
|
}
|
|
|
|
}));
|
|
|
|
|
2015-08-17 14:23:46 +03:00
|
|
|
// Test
|
|
|
|
config.push(_.extend({}, baseConfig, {
|
|
|
|
name: 'test',
|
|
|
|
entry: {
|
2015-08-26 18:24:43 +03:00
|
|
|
vendor: ['handlebars', 'handlebars_helpers'],
|
|
|
|
testNewsletterEditor: [
|
|
|
|
'underscore',
|
|
|
|
'backbone',
|
|
|
|
'backbone.marionette',
|
|
|
|
'backbone.supermodel',
|
|
|
|
'backbone.radio',
|
|
|
|
'select2',
|
2015-11-05 17:17:54 +02:00
|
|
|
'blob',
|
2017-06-15 18:11:05 +01:00
|
|
|
'file-saver',
|
2016-01-06 16:43:39 +02:00
|
|
|
'velocity-animate',
|
|
|
|
|
2016-06-06 18:53:13 +03:00
|
|
|
'mailpoet',
|
|
|
|
'notice',
|
|
|
|
'i18n',
|
|
|
|
|
2015-08-26 18:24:43 +03:00
|
|
|
'newsletter_editor/communicationsFix.js',
|
|
|
|
'newsletter_editor/App',
|
|
|
|
'newsletter_editor/components/config.js',
|
|
|
|
'newsletter_editor/components/styles.js',
|
|
|
|
'newsletter_editor/components/sidebar.js',
|
|
|
|
'newsletter_editor/components/content.js',
|
|
|
|
'newsletter_editor/components/heading.js',
|
|
|
|
'newsletter_editor/components/save.js',
|
2015-12-16 18:06:28 +02:00
|
|
|
'newsletter_editor/components/communication.js',
|
2015-08-26 18:24:43 +03:00
|
|
|
'newsletter_editor/behaviors/BehaviorsLookup.js',
|
|
|
|
'newsletter_editor/behaviors/ColorPickerBehavior.js',
|
|
|
|
'newsletter_editor/behaviors/ContainerDropZoneBehavior.js',
|
|
|
|
'newsletter_editor/behaviors/DraggableBehavior.js',
|
2016-06-06 18:53:13 +03:00
|
|
|
'newsletter_editor/behaviors/HighlightEditingBehavior.js',
|
2015-08-26 18:24:43 +03:00
|
|
|
'newsletter_editor/behaviors/ResizableBehavior.js',
|
|
|
|
'newsletter_editor/behaviors/SortableBehavior.js',
|
2016-08-19 14:57:14 +03:00
|
|
|
'newsletter_editor/behaviors/ShowSettingsBehavior.js',
|
2016-11-11 15:30:09 +02:00
|
|
|
'newsletter_editor/behaviors/TextEditorBehavior.js',
|
2015-08-26 18:24:43 +03:00
|
|
|
'newsletter_editor/blocks/base.js',
|
|
|
|
'newsletter_editor/blocks/container.js',
|
|
|
|
'newsletter_editor/blocks/button.js',
|
|
|
|
'newsletter_editor/blocks/image.js',
|
|
|
|
'newsletter_editor/blocks/divider.js',
|
|
|
|
'newsletter_editor/blocks/text.js',
|
|
|
|
'newsletter_editor/blocks/spacer.js',
|
|
|
|
'newsletter_editor/blocks/footer.js',
|
|
|
|
'newsletter_editor/blocks/header.js',
|
|
|
|
'newsletter_editor/blocks/automatedLatestContent.js',
|
|
|
|
'newsletter_editor/blocks/posts.js',
|
|
|
|
'newsletter_editor/blocks/social.js',
|
|
|
|
|
|
|
|
'components/config.spec.js',
|
|
|
|
'components/content.spec.js',
|
|
|
|
'components/heading.spec.js',
|
|
|
|
'components/save.spec.js',
|
|
|
|
'components/sidebar.spec.js',
|
|
|
|
'components/styles.spec.js',
|
2015-12-16 18:06:28 +02:00
|
|
|
'components/communication.spec.js',
|
2015-08-26 18:24:43 +03:00
|
|
|
|
|
|
|
'blocks/automatedLatestContent.spec.js',
|
|
|
|
'blocks/button.spec.js',
|
|
|
|
'blocks/container.spec.js',
|
|
|
|
'blocks/divider.spec.js',
|
|
|
|
'blocks/footer.spec.js',
|
|
|
|
'blocks/header.spec.js',
|
|
|
|
'blocks/image.spec.js',
|
|
|
|
'blocks/posts.spec.js',
|
|
|
|
'blocks/social.spec.js',
|
|
|
|
'blocks/spacer.spec.js',
|
|
|
|
'blocks/text.spec.js',
|
|
|
|
],
|
2015-08-17 14:23:46 +03:00
|
|
|
},
|
|
|
|
output: {
|
|
|
|
path: './tests/javascript/testBundles',
|
|
|
|
filename: '[name].js',
|
|
|
|
},
|
|
|
|
resolve: {
|
|
|
|
modulesDirectories: [
|
|
|
|
'node_modules',
|
|
|
|
'assets/js/src',
|
|
|
|
'tests/javascript/newsletter_editor'
|
2015-08-26 18:24:43 +03:00
|
|
|
],
|
|
|
|
alias: {
|
2016-01-04 17:02:46 +02:00
|
|
|
'sticky-kit': 'vendor/jquery.sticky-kit.js',
|
2015-08-26 18:24:43 +03:00
|
|
|
'backbone.marionette': 'backbone.marionette/lib/backbone.marionette',
|
|
|
|
'backbone.supermodel$': 'backbone.supermodel/build/backbone.supermodel.js',
|
2017-06-15 18:11:05 +01:00
|
|
|
'blob$': 'blob-tmp/Blob.js'
|
2015-08-26 18:24:43 +03:00
|
|
|
},
|
|
|
|
},
|
|
|
|
externals: {
|
|
|
|
'jquery': 'jQuery',
|
|
|
|
'tinymce': 'tinymce',
|
|
|
|
'interact': 'interact',
|
|
|
|
'spectrum': 'spectrum',
|
2015-08-17 14:23:46 +03:00
|
|
|
}
|
|
|
|
}));
|
|
|
|
|
|
|
|
module.exports = config;
|