Merge vendor js

There is a bunch of javascript we always load from vendors. This
combines this into 1 javascript file. Which reduces the number of
request by ~10.

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This commit is contained in:
Roeland Jago Douma 2017-03-10 09:34:29 +01:00
parent f38d36a161
commit eda98ed3df
No known key found for this signature in database
GPG Key ID: F941078878347C0C
4 changed files with 42658 additions and 13 deletions

35
build/mergejs.php Normal file
View File

@ -0,0 +1,35 @@
<?php
/**
* @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl>
*
* @author Roeland Jago Douma <roeland@famdouma.nl>
*
* @license GNU AGPL version 3 or any later version
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
/*
* Stupid simple code to merge all the default vendor javascript into 1
*/
$data = json_decode(file_get_contents(__DIR__.'/../core/js/core.json'), true);
$vendors = $data['vendor'];
$vendorjs = fopen(__DIR__.'/../core/vendor/core.js', 'w');
foreach($vendors as $vendor) {
fwrite($vendorjs, file_get_contents(__DIR__.'/../core/vendor/'.$vendor));
}
fclose($vendorjs);

View File

@ -13,7 +13,9 @@
"davclient.js/lib/client.js",
"clipboard/dist/clipboard.js",
"autosize/dist/autosize.js",
"DOMPurify/dist/purify.min.js"
"DOMPurify/dist/purify.min.js",
"snapjs/dist/latest/snap.js",
"select2/select2.js"
],
"libraries": [
"jquery-showpassword.js",

42605
core/vendor/core.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@ -114,12 +114,10 @@ class OC_Template extends \OC\Template\Base {
\OC_Util::addScript('jquery.avatar', null, true);
\OC_Util::addScript('placeholder', null, true);
OC_Util::addVendorScript('select2/select2');
OC_Util::addVendorStyle('select2/select2', null, true);
OC_Util::addScript('select2-toggleselect');
OC_Util::addScript('oc-backbone', null, true);
OC_Util::addVendorScript('snapjs/dist/latest/snap', null, true);
OC_Util::addScript('mimetypelist', null, true);
OC_Util::addScript('mimetype', null, true);
OC_Util::addScript("apps", null, true);
@ -139,19 +137,24 @@ class OC_Template extends \OC\Template\Base {
OC_Util::addScript('files/fileinfo');
OC_Util::addScript('files/client');
// Add the stuff we need always
// following logic will import all vendor libraries that are
// specified in core/js/core.json
$fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
if($fileContent !== false) {
$coreDependencies = json_decode($fileContent, true);
foreach(array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
// remove trailing ".js" as addVendorScript will append it
OC_Util::addVendorScript(
if (\OC::$server->getConfig()->getSystemValue('debug')) {
// Add the stuff we need always
// following logic will import all vendor libraries that are
// specified in core/js/core.json
$fileContent = file_get_contents(OC::$SERVERROOT . '/core/js/core.json');
if($fileContent !== false) {
$coreDependencies = json_decode($fileContent, true);
foreach(array_reverse($coreDependencies['vendor']) as $vendorLibrary) {
//remove trailing ".js" as addVendorScript will append it
OC_Util::addVendorScript(
substr($vendorLibrary, 0, strlen($vendorLibrary) - 3),null,true);
}
} else {
throw new \Exception('Cannot read core/js/core.json');
}
} else {
throw new \Exception('Cannot read core/js/core.json');
// Import all (combined) default vendor libraries
OC_Util::addVendorScript('core', null, true);
}
if (\OC::$server->getRequest()->isUserAgent([\OC\AppFramework\Http\Request::USER_AGENT_IE])) {