1
0
mirror of https://github.com/flarum/core.git synced 2025-07-24 02:01:19 +02:00
* Replace gulp with webpack and npm scripts for JS compilation
* Set up Travis CI to commit compiled JS
* Restructure `js` directory; only one instance of npm, forum/admin are "submodules"
* Refactor JS initializers into Application subclasses
* Maintain partial compatibility API (importing from absolute paths) for extensions
* Remove minification responsibility from PHP asset compiler
* Restructure `less` directory
This commit is contained in:
Toby Zerner
2018-06-20 13:20:31 +09:30
committed by GitHub
parent 7f68717769
commit c6ebef3631
235 changed files with 9351 additions and 57639 deletions

View File

@@ -107,8 +107,8 @@ abstract class AbstractFrontend
$root = __DIR__.'/../..';
$name = $this->getName();
$view->getJs()->addFile("$root/js/$name/dist/app.js");
$view->getCss()->addFile("$root/less/$name/app.less");
$view->getJs()->addFile("$root/js/dist/$name.js");
$view->getCss()->addFile("$root/less/$name.less");
}
/**

View File

@@ -11,11 +11,7 @@
namespace Flarum\Frontend\Asset;
use Exception;
use Illuminate\Cache\Repository;
use MatthiasMullie\Minify;
use s9e\TextFormatter\Configurator;
use s9e\TextFormatter\Configurator\JavaScript\Minifiers\FirstAvailable;
class JsCompiler extends RevisionCompiler
{
@@ -42,14 +38,6 @@ class JsCompiler extends RevisionCompiler
*/
protected function format($string)
{
if (! $this->watch) {
$key = 'js.'.sha1($string);
$string = $this->cache->rememberForever($key, function () use ($string) {
return $this->minify($string);
});
}
return $string.";\n";
}
@@ -60,59 +48,4 @@ class JsCompiler extends RevisionCompiler
{
return $this->watch;
}
/**
* @param string $source
* @return string
*/
protected function minify($source)
{
set_time_limit(60);
try {
$source = $this->minifyWithClosureCompilerService($source);
} catch (Exception $e) {
$source = $this->minifyWithFallback($source);
}
return $source;
}
/**
* @param string $source
* @return string
*/
protected function minifyWithClosureCompilerService($source)
{
// The minifier may need some classes bundled with the Configurator so we autoload it
class_exists(Configurator::class);
$minifier = new FirstAvailable;
$remoteCache = $minifier->add('RemoteCache');
$remoteCache->url = 'http://s9e-textformatter.rhcloud.com/flarum-minifier/';
$hostedMinifer = $minifier->add('HostedMinifier');
$hostedMinifer->url = 'http://s9e-textformatter.rhcloud.com/flarum-minifier/';
$hostedMinifer->httpClient->timeout = 30;
$ccs = $minifier->add('ClosureCompilerService');
$ccs->compilationLevel = 'SIMPLE_OPTIMIZATIONS';
$ccs->httpClient->timeout = 30;
$minifier->add('MatthiasMullieMinify');
return $minifier->minify($source);
}
/**
* @param string $source
* @return string
*/
protected function minifyWithFallback($source)
{
$minifier = new Minify\JS($source);
return $minifier->minify();
}
}

View File

@@ -22,23 +22,12 @@ class LocaleJsCompiler extends JsCompiler
public function compile()
{
$output = "
System.register('locale', [], function(_export) {
return {
execute: function() {
_export('default', function(app) {
app.translator.translations = ".json_encode($this->translations).";\n";
$output = 'flarum.core.app.translator.translations='.json_encode($this->translations).";\n";
foreach ($this->files as $filename) {
$output .= file_get_contents($filename);
}
$output .= '
});
}
};
});';
return $this->format($output);
}
}