Webstaff improve JS files minification and concatenation
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
New
|
Undecided
|
Unassigned |
Bug Description
Evergreen circ 2.12
The Grunt-driven minification and concatenation configuration is missing some parts and not doing all that it could to make JS file downloads more efficient.
I have put together a patch to do the following:
* Support minifying the core Evergreen services files (i.e. service/*.js). Previously, they were only concatenated.
* Create one concatenated file for external dependencies (jquery, angular, etc.) and a separate concatenated file for Evergreen core service files.
Included in this is replacing the template variable EXPAND_WEB_IMPORTS with EXPAND_
The thinking here is that concatenating 3rd party files (which are already minified) is an easy win and should not complicate debugging, whereas minifying and concatenating EG service files will require more testing. It's also nice that you can expand one or the other as needed for debugging.
The build creates evergreen-
* Various fixes to the Gruntfile, including missing dependency references and fixing some faulty assumptions from early iterations of the file.
* Remove OpenSRF JS from the minify/concat processes. Otherwise, we have to add some variable replacements in Gruntfile to avoid hard-coding the path to the OpenSRF js files. Not sure it's worth it for 3 small-ish files.
Changed in evergreen: | |
milestone: | 3.0-alpha → none |
Patch pushed:
http:// git.evergreen- ils.org/ ?p=working/ Evergreen. git;a=shortlog; h=refs/ heads/user/ berick/ lp1692097- webstaff- js-minify- repairs
In addition to the above, this patch adds minification support for angular- tree-control. js, ng-order- object- by.js, and ui-bootstrap- tpls.js.
In an attempt to make a move to using all this new stuff, I also set EXPAND_ WEB_DEP_ IMPORTS= 0 by default in the config.tt2 file. This will lump all of the external dependencies into a single JS import.
To test, run 'grunt all', make sure tests pass, install web files, open the browser client, then view source. Instead of imports for 'jquery', 'angular', etc. you should see a single import for:
<script src="/js/ ui/default/ staff/build/ js/evergreen- staff-client. 0.0.1.deps. min.js" ></script>
Bonus points for testing EXPAND_ WEB_CORE_ IMPORTS= 0. Surprisingly, I had no problems with this, but we probably don't want that to turn that on just yet / in master.