Improve assets management

This commit is contained in:
Frédéric Guillot 2019-07-25 19:23:30 -07:00
parent d42dd07054
commit 8c396287ac
5 changed files with 40 additions and 47 deletions

View File

@ -2,23 +2,10 @@ DOCKER_IMAGE := docker.io/kanboard/kanboard
DOCKER_TAG := master
VERSION := $(shell git rev-parse --short HEAD)
.PHONY: all clean static jshint archive test-sqlite test-mysql test-postgres test-browser \
.PHONY: archive test-sqlite test-mysql test-postgres test-browser \
integration-test-mysql integration-test-postgres integration-test-sqlite sql \
docker-image docker-manifest docker-run docker-sh
all: static
clean:
@ rm -rf ./node_modules
static: clean
@ npm install
@ ./node_modules/.bin/gulp vendor js css
@ ./node_modules/.bin/jshint assets/js/{core,components,polyfills}
jshint:
@ ./node_modules/.bin/jshint assets/js/{core,components,polyfills}
archive:
@ echo "Build archive: version=$(VERSION)"
@ git archive --format=zip --prefix=kanboard/ $(VERSION) -o kanboard-$(VERSION).zip

View File

@ -87,11 +87,11 @@ class CssCommand extends BaseCommand
];
private $vendorFiles = [
'jquery-ui/jquery-ui.min.css',
'jqueryui-timepicker-addon/jquery-ui-timepicker-addon.min.css',
'select2/css/select2.min.css',
'font-awesome/css/font-awesome.min.css',
'c3/c3.min.css',
self::CSS_VENDOR_PATH.'jquery-ui/jquery-ui.min.css',
self::CSS_VENDOR_PATH.'jqueryui-timepicker-addon/jquery-ui-timepicker-addon.min.css',
self::CSS_VENDOR_PATH.'select2/css/select2.min.css',
self::CSS_VENDOR_PATH.'font-awesome/css/font-awesome.min.css',
self::CSS_VENDOR_PATH.'c3/c3.min.css',
];
protected function configure()
@ -106,7 +106,9 @@ class CssCommand extends BaseCommand
{
$this->minifyFiles(self::CSS_SRC_PATH, $this->appFiles, 'app.min.css');
$this->minifyFiles(self::CSS_SRC_PATH, $this->printFiles, 'print.min.css');
$this->minifyFiles(self::CSS_VENDOR_PATH, $this->vendorFiles, 'vendor.min.css');
$vendorBundle = concat_files($this->vendorFiles);
file_put_contents('assets/css/vendor.min.css', $vendorBundle);
}
private function minifyFiles($folder, array $files, $destination)

View File

@ -79,34 +79,12 @@ class JsCommand extends BaseCommand
protected function execute(InputInterface $input, OutputInterface $output)
{
$appBundle = $this->concat($this->appFiles);
$vendorBundle = $this->concat($this->vendorFiles);
$appBundle = concat_files($this->appFiles);
$vendorBundle = concat_files($this->vendorFiles);
$minifier = new Minify\JS($appBundle);
file_put_contents('assets/js/app.min.js', $minifier->minify());
file_put_contents('assets/js/vendor.min.js', $vendorBundle);
}
private function concat(array $files)
{
$data = '';
foreach ($files as $pattern) {
foreach (glob($pattern) as $filename) {
echo $filename.PHP_EOL;
if (! file_exists($filename)) {
die("$filename not found\n");
}
$contents = file_get_contents($filename);
if ($contents === false) {
die("Unable to read $filename\n");
}
$data .= $contents;
}
}
return $data;
}
}

View File

@ -2,6 +2,28 @@
use Kanboard\Core\Translator;
function concat_files(array $files)
{
$data = '';
foreach ($files as $pattern) {
foreach (glob($pattern) as $filename) {
echo $filename.PHP_EOL;
if (! file_exists($filename)) {
die("$filename not found\n");
}
$contents = file_get_contents($filename);
if ($contents === false) {
die("Unable to read $filename\n");
}
$data .= $contents;
}
}
return $data;
}
function session_get($key)
{
return isset($_SESSION[$key]) ? $_SESSION[$key] : null;

File diff suppressed because one or more lines are too long