1
0
mirror of https://github.com/flarum/core.git synced 2025-10-14 00:15:51 +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 d234badbb2
commit 3f683dd6ee
235 changed files with 9351 additions and 57639 deletions

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();
}
}