lmd
Version:
LMD: Lazy Module Declaration
168 lines (142 loc) • 8.36 kB
Markdown
**v1.13.x**
- #187 Mixins in command line overrides mixins in config file
- #185 Uncaught error for absent 'www_root'
- #184 Type hint for modules. See [demo](http://lmdjs.org/examples/features/type_hint/), [code](examples/features/type_hint/)
- #183 define.amd should be defined
- #181 Streams2 API (fully backward compatible)
**v1.12.x**
- #166 Ember.js example. See [demo](http://lmdjs.org/examples/demos/emberjs_lmd/), [code](examples/demos/emberjs_lmd/)
- #180 Absolute "root" paths
**v1.11.x**
- changelog reversed
- `styles` - styles builder. See [demo](http://lmdjs.org/examples/features/styles/), [code](examples/features/styles/)
- default bundle separator changed from `-bundle-` to `.`
- empty styles and scripts will not be printed into file
- lmd-info(1) ✘ and warn become yellow
- lmd-info(1) prints bundles info include missing bundles
- lmd-info(1) prints styles info
- Remove strict warnings on dependencies
- Do not stream styles and scripts If they are not defined
- `banner` property. See [code](examples/features/banner/)
- Bugfix #169 If no bundles lmd should not print "bundle" in options
- Bugfix #174 apply default value of `sourcemap_www` only for non-strings & replace back slashes with front slashes for source URLs
- Test example
- `file_protocol` is deprecated
- `require.css()` does not cleanup link on timeout, "errorback" removed
**v1.10.x**
- `image` - image loader plugin. See [demo](http://lmdjs.org/examples/plugins/image/), [code](examples/plugins/image/)
- `promise` - promise interface plugin. See [demo](http://lmdjs.org/examples/plugins/promise/), [code](examples/plugins/promise/)
- `optimize` - a tweak flag enables special LMD optimisations without minification
- Now you can use `name` and `description` fields
- User custom plugins. See [demo](http://lmdjs.org/examples/plugins/user_plugins/), [code](examples/plugins/user_plugins/)
- Config string interpolation/templates. See [demo](http://lmdjs.org/examples/features/interpolation/), [code](examples/features/interpolation/)
- Glob - you can specify glob pattern (eg `"${name}": "js/**/*.js"`) to match multiply files. See [demo](http://lmdjs.org/examples/features/glob/), [code](examples/features/glob/)
- lmd-build(1) and lmd-info(1) are prints version parameter if defined
- [Plugin demos](examples/plugins/)
- Bugfixes #83 #81 #79 #78 #66
- bash zsh autocomplete
- Examples for "depends", "extends", "sandbox"
- Docs are located on GH Wiki
- `preload` - this plugins is simmilar to `async`, it only caches modules without executing them. See [demo](http://lmdjs.org/examples/plugins/preload/), [code](examples/plugins/preload/)
- http://lmdjs.org/
- adaptation example. See [demo](http://lmdjs.org/examples/features/adaptation/), [code](examples/features/adaptation/)
- require.preload plugin. See [demo](http://lmdjs.org/examples/plugins/preload/), [code](examples/plugins/preload/)
- optimize flag. See [demo](http://lmdjs.org/examples/features/optimize/), [code](examples/features/optimize/)
- build info in the build.js file
- ThisBinding of 3-party module "bind" or "this" property
- `bundles` - basic part
- `file_protocol` - tweaks for `file://`
- `lmdjs_configs` - you can write config files in JavaScript. See [demo](http://lmdjs.org/examples/features/lmdjs_configs/), [code](examples/features/lmdjs_configs/)
- `match` - enables `require.match(RegExp): Object` requires every matched module name. See [demo](http://lmdjs.org/examples/plugins/match/), [code](examples/plugins/match/)`
- `multi_module` - feature allows you to use multiply files as one module. Eg jquery+plugins. See [demo](http://lmdjs.org/examples/features/multi_module/), [code](examples/features/multi_module/)
- Google Closure Compile is ADVANCED mode
- #137 Custom localStorage key for LMD cache plugin
- #138 lmd watch fix for node 0.10.x
- #144 `ignore_module` feature. See [demo](http://lmdjs.org/examples/features/ignore_module/), [code](examples/features/ignore_module/)
- #147 `sourcemap_url` config property. See [Wiki page about Source Map](https://github.com/azproduction/lmd/wiki/SourceMap)
**v1.9.x**
- Better LMD CLI
- lmd info CLI command
- mixins config option
- mixins for lmd info, lmd build, lmd watch
- `config.lazy=false` by default now
- better `lmd info`: deep static analytics with depends, new `lmd info` flag `[--deep=true]`
- content-based warnings in `lmd info` and `lmd build` for:
- js
- css
- async
- parallel
- amd
- shortcuts
- Grunt.js integration section
- finally `lmd -v`
- `log` and `warn` are true by default
- global check of lazy modules is deisabled
- info of unused modules, suspicious globals and off-package modules paths
- `"stats_auto": true` automatic statistics push
- plugins depends
**v1.8.x**
- Plugins interface are totally rewritten
- Test runner via `npm test` or `make test`
- Tail semicolons cleanup
- Lmd is Readable Stream
- Lmd Watch upstart rebuild, watch for lmd.json
- AMD module adaptor `amd` flag
- Source Map
**v1.7.x**
- **Note** in sandboxed module require can be an object (`{coverage_line, coverage_function, coverage_condition}`) if sandboxed module is under code coverage
- `require.async()` can load plain modules flags `async_plain`, `async_plainonly`
- `require.stats()` shows modules usage and code coverage. Flags `stats`, `stats_coverage`, `stats_sendto`
- in-package Code coverage. Flag `stats_coverage`
- Stats server
- LMD module from non-lmd module
- `config.lazy=false` by default now
- Local Storage cache in Opera Mobile is disabled (OM cant Function#toString...)
- `root` alias to `path`
- Module depends
- off-package Code coverage. Flag `stats_coverage_async`
- Phantom JS and Travis CI integration
- Improved Stats Server: require timeline, require graph
- Pack options UglifyJS `pack_options` issue #41 parameter
**v1.6.x**
- Local Storage cache - config flag `cache: true`
- argv flag `-v`/`-version` is deprecated - use config flag `async: true` for `lmd_async.js` or false for `lmd_tiny.js` (default)
- Created development version of example app without cache and production with cache=on
- LMD can include off-package css `css: true` and js-files `js: true`(for jsonp, cross-origin JS or non LMD modules)
- Unit tests and code coverage
- Worker (`worker: true`) and Node.js (`node: true`) environments for require.css, require.js and require.async
- Older IE support `ie: true` flag
- Sandboxed module now accepts require arg as undefined (was null)
- Callback argument in require.js .css .async now optional. Each of them returns require for chaining
- Firefox 13 setTimeout callback poisoning bug
- LMD Warnings for: Parse error, more to come...
- Prevent requiring same sources while they are loading from server (`race` flag)
- `require.async()` cache (`cache_async` flag)
- LMD checks for direct globals access in lazy modules
- Shortcuts `"shortcut": "@/path/to/real-file.js"` for `require.async("shortcut")` `.js()` or `.css()`
- window.eval replaced with Function eval, removed IE eval hack
- added `require.stats([moduleName])` flag `stats: false`
- replaced old preprocessor with readable one
**v1.5.x**
- Watch mode
- New version of argv params
- String module
- LMD async - loader of off-package modules see "Asynchronous module require" in this README
**v1.4.x**
- Config extends (now config can extend common config file)
- Headless module without function wrapper like Node.js module
- Possible to specify LMD.js version for build - `lmd_min` (old one) or `lmd_tiny`
- Per module lazy flag `"Module": {"path": "Module.js", "lazy": false}`
- Sandbox flag is moved to module descriptor. `{"sandbox": {...}}` is deprecated
- Modified LmdBuilder constructor
- Lots of comments in LmdBuilder
**v1.3.x**
- Modules sandboxing
- Named global object (default this)
- Updated example - added worker part and config file with environment-specific data
**v1.2.x**
- LMD can grab modules from globals (jQuery, Ext, Backbone, Underscore) if module is not found in package
- Wildcard build bugfixes
- Makefile for example
**v1.1.x**
- Recursive module inclusion and wildcards in descriptors