amdextract
Uses AST to extract AMD modules, their parts and an optimized output without unused dependencies while keeping the original format.
example
source.js
; ;
example.js
var fs = ;var amdextract = ; var content = fs;var result = amdextract; console; resultresults; console;console;
output
2 modules detected.
Unused paths: p2
Unused paths: p1, p3, p4
Optimized output:
define('module1', ['p1'], function (a) {
/**
* b is not used in this scope.
*/
return (function(b) {
return b;
})(a);
});
define('module2', ['p2'], function (b) {
return b;
});
methods
parse(content[, options])
content
Type: string JavaScript source for parsing.
options
excepts
Type: Array Default value: []
An array of strings or RegExps that represent dependency names that should not take into account.
exceptsPaths
Type: Array Default value: []
An array of strings or RegExps that represent dependency paths that should not take into account.
NOTE: exceptsPaths
can also be declared before each module definition as a comment of strings of module paths separated by commas. This only applies on the underlying module definition.
source.js
/* exceptsPaths: p3 */;
optimized-source.js
/* exceptsPaths: p3 */;
removeUnusedDependencies
Type: Boolean Default value: false
Removes unused dependencies from content
and returns optimized content as optimizedContent
property of result.
returns
Returns an object with the following properties:
results
Type: Array
An array of hash objects witch have this properties for each AMD module detected in content
:
moduleId
paths
dependencies
unusedPaths
unusedDependencies
optimizedContent
Type: String
Optimized content
(original content without unused dependencies).
This property is available when the value of option removeUnusedDependencies
is true.
Release History
- 2015-12-27 v2.1.14 Remove "for in" loop in traverse.
- 2015-12-26 v2.1.13 Remove unused function "extendRange".
- 2015-12-26 v2.1.12 Fixed indentation of samples in README.md.
- 2015-12-26 v2.1.11 Fixed a bug in "optimizedContent" property.
- 2015-07-25 v2.1.10 Update travis CI.
- 2015-07-25 v2.1.9 Update dependencies.
- 2015-04-15 v2.1.8 Update README.
- 2014-08-22 v2.1.6 Fix a bug when there are comments between paths and dependencies.
- 2014-08-16 v2.1.0 Entirely uses AST.
- 2014-07-21 v2.0.3 Fix an issue related to comment detection.
- 2014-07-21 v2.0.2 Fix an issue related to RegExp literals.
- 2014-07-20 v2.0.0 Uses AST to find out unused dependencies.
- 2014-04-19 v1.1.0 Keeps the original separators of paths and dependencies.
- 2014-04-09 v1.0.4 Fix a bug when dependencies length is grater than paths length.
- 2014-03-29 v1.0.3 Fix a bug when specifying exceptsPaths in options only.
- 2014-03-17 v1.0.0 First release.