JShrink for TYPO3
, (*1)
The TYPO3 core can compress CSS and JavaScript files to improve frontend-performance. Unlike CSS files the JavaScript files are
only compressed with GZip and not minified. This extension integrates the popular library
JShrink to add this feature also for JavaScript., (*2)
This extension aims to be as lightweight as possible. Hopefully the minification will one day be integrated into the core to make this
extension obsolete., (*3)
It is no replacement for much more powerful extensions like Scriptmerger!, (*4)
Compatibility
This extension uses a XClass to hijack the method
\TYPO3\CMS\Core\Resource\ResourceCompressor::compressJsFile()
and add the call to JShrink. This could break with every update
of TYPO3, because this method is not defined as stable API. Please keep this in mind while your updating your instance., (*5)
If you have a better idea how JShrink could be integrated into the core, please drop me a line or create a pull request., (*6)
Currently supported versions: TYPO3 7.6.0 - 8.1.0 (newer versions should work, but are not tested yet), (*7)
Usage
Install the extension and make sure compression for JavaScript-files is activated via Typoscript:, (*8)
page.config.compressJs = 1
Installing
Composer
Installing JShrink can be done through a variety of methods, although Composer is recommended., (*9)
"require": {
"maximilian-walter/typo3-jshrink": "~1.0"
}
The JShrink-library will be automatically installed as dependency., (*10)
TER
This extension can also be installed via TER. You have to search for the name "jshrink". If you do so, please make sure the class
\JShrink\Minifier
can be used., (*11)
Contribution
Feel free to add issues or pull requests on GitHub. Code changes should follow the Coding Guidelines of TYPO3., (*12)
License
This extension is licensed under the GNU General Public License, either version 2 of the License, or any later version., (*13)
For the full copyright and license information, please read the LICENSE.txt file that was distributed with this source code., (*14)
Attributions
The heavy lifting is done by the popular library JShrink - https://github.com/tedious/JShrink, (*15)
The icon is based on Font Awesome by Dave Gandy - http://fontawesome.io, (*16)
Thanks to all contributors for all your work on those great projects!, (*17)