Merge pull request #1739 from mailpoet/move-assets-to-dist
Move generated assets to dist [MAILPOET-1687]
This commit is contained in:
5
.gitignore
vendored
5
.gitignore
vendored
@@ -17,10 +17,7 @@ temp
|
|||||||
.idea
|
.idea
|
||||||
mailpoet.zip
|
mailpoet.zip
|
||||||
tests/javascript/testBundles
|
tests/javascript/testBundles
|
||||||
assets/css/*.css
|
assets/dist
|
||||||
assets/css/*.json
|
|
||||||
assets/js/*.js
|
|
||||||
assets/js/*.json
|
|
||||||
.vagrant
|
.vagrant
|
||||||
lang
|
lang
|
||||||
.mp_svn
|
.mp_svn
|
||||||
|
14
RoboFile.php
14
RoboFile.php
@@ -81,6 +81,9 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function compileJs($opts = ['env' => null]) {
|
function compileJs($opts = ['env' => null]) {
|
||||||
|
if(!is_dir('assets/dist/js')) {
|
||||||
|
mkdir('assets/dist/js', 0777, true);
|
||||||
|
}
|
||||||
$env = ($opts['env']) ?
|
$env = ($opts['env']) ?
|
||||||
sprintf('./node_modules/cross-env/dist/bin/cross-env.js NODE_ENV="%s"', $opts['env']) :
|
sprintf('./node_modules/cross-env/dist/bin/cross-env.js NODE_ENV="%s"', $opts['env']) :
|
||||||
null;
|
null;
|
||||||
@@ -88,8 +91,11 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function compileCss($opts = ['env' => null]) {
|
function compileCss($opts = ['env' => null]) {
|
||||||
|
if(!is_dir('assets/dist/css')) {
|
||||||
|
mkdir('assets/dist/css', 0777, true);
|
||||||
|
}
|
||||||
// Clean up folder from previous files
|
// Clean up folder from previous files
|
||||||
array_map('unlink', glob("assets/css/*.*"));
|
array_map('unlink', glob("assets/dist/css/*.*"));
|
||||||
|
|
||||||
$css_files = array(
|
$css_files = array(
|
||||||
'assets/css/src/admin.styl',
|
'assets/css/src/admin.styl',
|
||||||
@@ -106,12 +112,12 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
'--include-css',
|
'--include-css',
|
||||||
'-u nib',
|
'-u nib',
|
||||||
join(' ', $css_files),
|
join(' ', $css_files),
|
||||||
'-o assets/css/'
|
'-o assets/dist/css/'
|
||||||
)));
|
)));
|
||||||
|
|
||||||
// Create manifest file
|
// Create manifest file
|
||||||
$manifest = [];
|
$manifest = [];
|
||||||
foreach(glob('assets/css/*.css') as $style) {
|
foreach(glob('assets/dist/css/*.css') as $style) {
|
||||||
// Hash and rename styles if production environment
|
// Hash and rename styles if production environment
|
||||||
if($opts['env'] === 'production') {
|
if($opts['env'] === 'production') {
|
||||||
$hashed_style = sprintf(
|
$hashed_style = sprintf(
|
||||||
@@ -125,7 +131,7 @@ class RoboFile extends \Robo\Tasks {
|
|||||||
$manifest[basename($style)] = basename($style);
|
$manifest[basename($style)] = basename($style);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
file_put_contents('assets/css/manifest.json', json_encode($manifest, JSON_PRETTY_PRINT));
|
file_put_contents('assets/dist/css/manifest.json', json_encode($manifest, JSON_PRETTY_PRINT));
|
||||||
return $compilation_result;
|
return $compilation_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -56,7 +56,7 @@ class Capabilities {
|
|||||||
function enqueueMembersStyles() {
|
function enqueueMembersStyles() {
|
||||||
wp_enqueue_style(
|
wp_enqueue_style(
|
||||||
'mailpoet-admin-global',
|
'mailpoet-admin-global',
|
||||||
Env::$assets_url . '/css/' . $this->renderer->getCssAsset('admin-global.css')
|
Env::$assets_url . '/dist/css/' . $this->renderer->getCssAsset('admin-global.css')
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -32,8 +32,8 @@ class Renderer {
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
$this->assets_manifest_js = $this->getAssetManifest(Env::$assets_path . '/js/manifest.json');
|
$this->assets_manifest_js = $this->getAssetManifest(Env::$assets_path . '/dist/js/manifest.json');
|
||||||
$this->assets_manifest_css = $this->getAssetManifest(Env::$assets_path . '/css/manifest.json');
|
$this->assets_manifest_css = $this->getAssetManifest(Env::$assets_path . '/dist/css/manifest.json');
|
||||||
$this->setupDebug();
|
$this->setupDebug();
|
||||||
$this->setupTranslations();
|
$this->setupTranslations();
|
||||||
$this->setupFunctions();
|
$this->setupFunctions();
|
||||||
|
@@ -61,7 +61,7 @@ class Export {
|
|||||||
|
|
||||||
// CSS
|
// CSS
|
||||||
$output[] = '<link rel="stylesheet" type="text/css" href="'.
|
$output[] = '<link rel="stylesheet" type="text/css" href="'.
|
||||||
Env::$assets_url.'/css/public.css?mp_ver='.MAILPOET_VERSION.
|
Env::$assets_url.'/dist/css/public.css?mp_ver='.MAILPOET_VERSION.
|
||||||
'" />';
|
'" />';
|
||||||
|
|
||||||
// jQuery
|
// jQuery
|
||||||
@@ -71,10 +71,10 @@ class Export {
|
|||||||
|
|
||||||
// JS
|
// JS
|
||||||
$output[] = '<script type="text/javascript" src="'.
|
$output[] = '<script type="text/javascript" src="'.
|
||||||
Env::$assets_url.'/js/vendor.js?mp_ver='.MAILPOET_VERSION.
|
Env::$assets_url.'/dist/js/vendor.js?mp_ver='.MAILPOET_VERSION.
|
||||||
'"></script>';
|
'"></script>';
|
||||||
$output[] = '<script type="text/javascript" src="'.
|
$output[] = '<script type="text/javascript" src="'.
|
||||||
Env::$assets_url.'/js/public.js?mp_ver='.MAILPOET_VERSION.
|
Env::$assets_url.'/dist/js/public.js?mp_ver='.MAILPOET_VERSION.
|
||||||
'"></script>';
|
'"></script>';
|
||||||
|
|
||||||
// (JS) variables...
|
// (JS) variables...
|
||||||
|
@@ -93,12 +93,12 @@ class Widget extends \WP_Widget {
|
|||||||
function setupDependencies() {
|
function setupDependencies() {
|
||||||
wp_enqueue_style(
|
wp_enqueue_style(
|
||||||
'mailpoet_public',
|
'mailpoet_public',
|
||||||
Env::$assets_url . '/css/' . $this->renderer->getCssAsset('public.css')
|
Env::$assets_url . '/dist/css/' . $this->renderer->getCssAsset('public.css')
|
||||||
);
|
);
|
||||||
|
|
||||||
wp_enqueue_script(
|
wp_enqueue_script(
|
||||||
'mailpoet_vendor',
|
'mailpoet_vendor',
|
||||||
Env::$assets_url . '/js/' . $this->renderer->getJsAsset('vendor.js'),
|
Env::$assets_url . '/dist/js/' . $this->renderer->getJsAsset('vendor.js'),
|
||||||
array(),
|
array(),
|
||||||
Env::$version,
|
Env::$version,
|
||||||
true
|
true
|
||||||
@@ -106,7 +106,7 @@ class Widget extends \WP_Widget {
|
|||||||
|
|
||||||
wp_enqueue_script(
|
wp_enqueue_script(
|
||||||
'mailpoet_public',
|
'mailpoet_public',
|
||||||
Env::$assets_url . '/js/' . $this->renderer->getJsAsset('public.js'),
|
Env::$assets_url . '/dist/js/' . $this->renderer->getJsAsset('public.js'),
|
||||||
array('jquery'),
|
array('jquery'),
|
||||||
Env::$version,
|
Env::$version,
|
||||||
true
|
true
|
||||||
@@ -148,7 +148,7 @@ EOL;
|
|||||||
function setupAdminWidgetPageDependencies() {
|
function setupAdminWidgetPageDependencies() {
|
||||||
wp_enqueue_script(
|
wp_enqueue_script(
|
||||||
'mailpoet_vendor',
|
'mailpoet_vendor',
|
||||||
Env::$assets_url . '/js/' . $this->renderer->getJsAsset('vendor.js'),
|
Env::$assets_url . '/dist/js/' . $this->renderer->getJsAsset('vendor.js'),
|
||||||
array(),
|
array(),
|
||||||
Env::$version,
|
Env::$version,
|
||||||
true
|
true
|
||||||
@@ -156,7 +156,7 @@ EOL;
|
|||||||
|
|
||||||
wp_enqueue_script(
|
wp_enqueue_script(
|
||||||
'mailpoet_admin',
|
'mailpoet_admin',
|
||||||
Env::$assets_url . '/js/' . $this->renderer->getJsAsset('mailpoet.js'),
|
Env::$assets_url . '/dist/js/' . $this->renderer->getJsAsset('mailpoet.js'),
|
||||||
array(),
|
array(),
|
||||||
Env::$version,
|
Env::$version,
|
||||||
true
|
true
|
||||||
|
@@ -43,7 +43,7 @@ class Assets extends \Twig_Extension {
|
|||||||
|
|
||||||
foreach($stylesheets as $stylesheet) {
|
foreach($stylesheets as $stylesheet) {
|
||||||
$output[] = sprintf(
|
$output[] = sprintf(
|
||||||
'<link rel="stylesheet" type="text/css" href="%s/css/%s" />',
|
'<link rel="stylesheet" type="text/css" href="%s/dist/css/%s" />',
|
||||||
$this->_globals['assets_url'],
|
$this->_globals['assets_url'],
|
||||||
$this->getAssetFilename($this->_globals['assets_manifest_css'], $stylesheet)
|
$this->getAssetFilename($this->_globals['assets_manifest_css'], $stylesheet)
|
||||||
);
|
);
|
||||||
@@ -58,9 +58,10 @@ class Assets extends \Twig_Extension {
|
|||||||
|
|
||||||
foreach($scripts as $script) {
|
foreach($scripts as $script) {
|
||||||
$output[] = sprintf(
|
$output[] = sprintf(
|
||||||
'<script type="text/javascript" src="%s/js/%s"></script>',
|
'<script type="text/javascript" src="%s/%s/%s"></script>',
|
||||||
$this->_globals['assets_url'],
|
$this->_globals['assets_url'],
|
||||||
$this->getAssetFilename($this->_globals['assets_manifest_js'], $script)
|
strpos($script, 'lib/') === 0 ? 'js' : 'dist/js',
|
||||||
|
$this->getAssetFileName($this->_globals['assets_manifest_js'], $script)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -18,8 +18,8 @@ class RendererTest extends \MailPoetTest {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
$renderer->__construct();
|
$renderer->__construct();
|
||||||
expect($renderer->assets_manifest_js)->equals(Env::$assets_path . '/js/manifest.json');
|
expect($renderer->assets_manifest_js)->equals(Env::$assets_path . '/dist/js/manifest.json');
|
||||||
expect($renderer->assets_manifest_css)->equals(Env::$assets_path . '/css/manifest.json');
|
expect($renderer->assets_manifest_css)->equals(Env::$assets_path . '/dist/css/manifest.json');
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItGetsAssetManifest() {
|
function testItGetsAssetManifest() {
|
||||||
|
@@ -32,17 +32,17 @@ class AssetsTest extends \MailPoetTest {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect($assets_extension->generateJavascript('script1.js', 'script2.js'))->equals(
|
expect($assets_extension->generateJavascript('script1.js', 'script2.js'))->equals(
|
||||||
'<script type="text/javascript" src="' . $this->assets_url . '/js/script1.hash.js"></script>'
|
'<script type="text/javascript" src="' . $this->assets_url . '/dist/js/script1.hash.js"></script>'
|
||||||
. "\n"
|
. "\n"
|
||||||
. '<script type="text/javascript" src="' . $this->assets_url . '/js/script2.hash.js"></script>'
|
. '<script type="text/javascript" src="' . $this->assets_url . '/dist/js/script2.hash.js"></script>'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItGeneratesJavascriptTagsForAssetsWhenManifestFileDoesNotExist() {
|
function testItGeneratesJavascriptTagsForAssetsWhenManifestFileDoesNotExist() {
|
||||||
expect($this->assets_extension->generateJavascript('script1.js', 'script2.js'))->equals(
|
expect($this->assets_extension->generateJavascript('lib/script1.js', 'script2.js'))->equals(
|
||||||
'<script type="text/javascript" src="' . $this->assets_url . '/js/script1.js"></script>'
|
'<script type="text/javascript" src="' . $this->assets_url . '/js/lib/script1.js"></script>'
|
||||||
. "\n"
|
. "\n"
|
||||||
. '<script type="text/javascript" src="' . $this->assets_url . '/js/script2.js"></script>'
|
. '<script type="text/javascript" src="' . $this->assets_url . '/dist/js/script2.js"></script>'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -61,17 +61,17 @@ class AssetsTest extends \MailPoetTest {
|
|||||||
);
|
);
|
||||||
|
|
||||||
expect($assets_extension->generateStylesheet('style1.css', 'style2.css'))->equals(
|
expect($assets_extension->generateStylesheet('style1.css', 'style2.css'))->equals(
|
||||||
'<link rel="stylesheet" type="text/css" href="' . $this->assets_url . '/css/style1.hash.css" />'
|
'<link rel="stylesheet" type="text/css" href="' . $this->assets_url . '/dist/css/style1.hash.css" />'
|
||||||
. "\n"
|
. "\n"
|
||||||
. '<link rel="stylesheet" type="text/css" href="' . $this->assets_url . '/css/style2.hash.css" />'
|
. '<link rel="stylesheet" type="text/css" href="' . $this->assets_url . '/dist/css/style2.hash.css" />'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
function testItGeneratesStylesheetTagsWhenManifestFileDoesNotExist() {
|
function testItGeneratesStylesheetTagsWhenManifestFileDoesNotExist() {
|
||||||
expect($this->assets_extension->generateStylesheet('style1.css', 'style2.css'))->equals(
|
expect($this->assets_extension->generateStylesheet('style1.css', 'style2.css'))->equals(
|
||||||
'<link rel="stylesheet" type="text/css" href="' . $this->assets_url . '/css/style1.css" />'
|
'<link rel="stylesheet" type="text/css" href="' . $this->assets_url . '/dist/css/style1.css" />'
|
||||||
. "\n"
|
. "\n"
|
||||||
. '<link rel="stylesheet" type="text/css" href="' . $this->assets_url . '/css/style2.css" />'
|
. '<link rel="stylesheet" type="text/css" href="' . $this->assets_url . '/dist/css/style2.css" />'
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -27,7 +27,7 @@ const baseConfig = {
|
|||||||
],
|
],
|
||||||
},
|
},
|
||||||
output: {
|
output: {
|
||||||
path: path.join(__dirname, 'assets/js'),
|
path: path.join(__dirname, 'assets/dist/js'),
|
||||||
filename: (PRODUCTION_ENV) ? '[name].[hash:8].js' : '[name].js',
|
filename: (PRODUCTION_ENV) ? '[name].[hash:8].js' : '[name].js',
|
||||||
chunkFilename: (PRODUCTION_ENV) ? '[name].[hash:8].chunk.js' : '[name].chunk.js',
|
chunkFilename: (PRODUCTION_ENV) ? '[name].[hash:8].chunk.js' : '[name].chunk.js',
|
||||||
jsonpFunction: 'mailpoetJsonp'
|
jsonpFunction: 'mailpoetJsonp'
|
||||||
@@ -57,7 +57,7 @@ const baseConfig = {
|
|||||||
},
|
},
|
||||||
plugins: [
|
plugins: [
|
||||||
new webpackCleanPlugin([
|
new webpackCleanPlugin([
|
||||||
'./assets/js/*.*',
|
'./assets/dist/js/*.*',
|
||||||
]),
|
]),
|
||||||
],
|
],
|
||||||
module: {
|
module: {
|
||||||
|
Reference in New Issue
Block a user