1.4
NOTE: This version supports basis.js 1.3 and greater only. For basis.js prior 1.3, please, use
basisjs-tools1.3.*.
The primary goal of this release is support for basis.js 1.4. But also great work on analysis and warnings was done. Template processing become more stable and markup in l10n is now fully supported.
Extract
- support for basis.js 1.4
- since 1.4 use
basis-configto init core - less heuristics, use basis.js core as much as possible (a.e. use
basis.resource.resolveURIto resolve all paths instead of custom logic)
- since 1.4 use
- improve handler skipping
- consider file read and JSON parse errors as fatal
- FIX:
base,fileandoutputpath resolving - rework path resolving:
FileManageris now work with app files as server path (root isbasepath now) - move
asset()andresource()relink tobuild - return promise as command result (resolve async)
- optimize css processing (performance)
- FIX:
file-maphandler when nobasis.l10nused - FIX: basis.js commit hash fetch
- FIX: resolving of unknown basis namespace
- locations & warnings
- warn about file not found for files that refer for those files
- collect start positions for some tokens on javascript parse
- lint javascript: unused names (definitions) and implicit usage of global names
- add location info to inline scripts and styles
- collect location info for attributes in html
- various fixes and improvements for template warnings
- no warnings for removed template parts
- fix warnings copy on template analyse
- add location for css warnings
- correct warning locations for styles embed in other files
- reduce duplicates in style warnings
- use value parts location map if provided (from basis.js) for correct classes position in attributes
- use styles offset map if provided (from basis.js) for correct class token positions
- add originator and isolate prefix into template and style warnings
- remove class name isolate prefixes in some warnings
- improve warnings output on css info collect
- better warning for non-resolved argument in
dictionary.token() - new warning for mismatched paths in
l10ndictionary type definition
- l10n
- improve
l10nmarkup token processing (now this feature is completely supported!) - improve
l10ndictionary processing- split
l10nhandlers inv1andv2versions and related changes - new
l10nhandler that relink for all links changes - remove empty
_metaand_meta.typeinv2dictionaries - delete unused cultures (that not in culture list) for
v2dictionaries
- split
- fix
l10nenabled check
- improve
- template
- use
-js-cut-devoption instead of-js-build-modeto optimize template size - add support for basis.template declaration
v3(new bindings format) - fatal error on missed style files in isolated templates
- fix working with template theme defines
- take in account theme fallbacks
- no redundant templates
- correct style theme distribution
- better support for template inline styles
- fix issue when one template is used as several explicit defines
- fix issue when resource reused for explicit define
- move template implicit define injection to build
- use
Build
- support for basis.js 1.4
- improve handler skipping
- consider file read and json parse errors as fatal
- fix exit code on errors (important for automation)
- fix
base,fileandoutputpath resolving - initially solution to build Web Worker scripts
- pretty offset for html injections
- improve style theme choosing on app build startup
- improve logging
- log translated resources
- move summary handler aside
- log inline file in flow
- better output for
css/translate
- make throw optimisation safe and optional (apply only when
--js-optimize-throwsoption is set) - NEW: option
--same-filenames - NEW: option
--tmpl-default-theme - FIX: unknown type for
0.css - FIX: asset relink for resource files
- FIX:
--css-optimize-namesexception when basis.js is not used - FIX:
--css-optimize-namesto work correctly withanim:bindings - FIX: CSS corruption on CSS pack, when files contains shared subtrees
- FIX: bugs with class name renaming (
--css-optimize-names)
Server
- move proxy and request rewriting to separate module
- fix issue with url resolving when server runs inside
basisjs-tools - make case sensitive filename check universal (os-independant)
Other
- new command
lint - fix broken
configcommand - use
exitmodule instead ofprocess.exit() - use hi-res time for timing
basis -vreturns proper dev version now- use
<b:isolate>in default templates (createcommand) - add some tests
- improve work with CSS AST
- add support for
/deep/combinator in css parser - use own translator instead of
cssotranslator (performance, less memory consumption) - new own fast walker
- add support for
- improve javascript scope processing
- move aside everything not connected with scope from
ast/scope - recognise some common global names
- correct process scope for catch clause
- move aside everything not connected with scope from