These pages are old. They apply to UglifyJS v2. Version 3 has evolved a lot in the mean time to support most of ES6. Please check the documentation in the official repository for up-to-date information. Big thanks to all contributors, especially to Alex Lam S.L., who has maintained this project for years!
UglifyJS — the parser
The parser creates a custom abstract syntax tree given a piece of JavaScript code. Perhaps you should read about the AST first.
SYNOPSIS
// it takes the source code to parse as first argument:
var ast = UglifyJS.parse("function sum(x, y){ return x + y }");
// optionally you can pass another argument with options:
var ast = UglifyJS.parse(code, {
strict : true, // default is false
filename : "Input file name", // default is null
toplevel : ast // also null
});
When no toplevel argument is given, the parser will create an AST_Toplevel node and place into its body all statements from the code. However, to generate a proper source map it was useful to have the ability to parse multiple files into a single toplevel node. To do this you would say:
var ast = UglifyJS.parse(file1_content, { filename: "file1.js" });
ast = UglifyJS.parse(file2_content, { filename: "file2.js", toplevel: ast });
ast = UglifyJS.parse(file3_content, { filename: "file3.js", toplevel: ast });
// or in general, if in `files` array you have the list of files:
var ast = null;
files.forEach(function(file){
var code = fs.readFileSync(file, "utf8");
ast = UglifyJS.parse(code, { filename: file, ast: ast });
});
Read more about the AST structures.
UglifyJS
JS compressor of world fame.
Open demo- Home
- Parser
- Code generator
- Compressor
- Mangler
- The AST structure
- SpiderMonkey AST
- Scope analysis
- AST walker
- AST transformer
- UglifyJS on Github
Latest blog entries tagged "uglifyjs"
- Using UglifyJS for code refactoring
- Should you switch to UglifyJS2?
- UglifyJS online demo
- UglifyJS — why not switching to SpiderMonkey AST
/** May the source-map be with you! **/