add documentation

This commit is contained in:
alexlamsl 2017-05-22 00:48:31 +08:00
parent 307680f14b
commit a1d1e6ff45

View File

@ -786,7 +786,7 @@ You can also use conditional compilation via the programmatic API. With the diff
property name is `global_defs` and is a compressor property: property name is `global_defs` and is a compressor property:
```javascript ```javascript
var result = uglifyJS.minify(fs.readFileSync("input.js", "utf8"), { var result = UglifyJS.minify(fs.readFileSync("input.js", "utf8"), {
compress: { compress: {
dead_code: true, dead_code: true,
global_defs: { global_defs: {
@ -796,6 +796,32 @@ var result = uglifyJS.minify(fs.readFileSync("input.js", "utf8"), {
}); });
``` ```
To replace an identifier with an arbitrary non-constant expression it is
necessary to prefix the `global_defs` key with `"@"` to instruct UglifyJS
to parse the value as an expression:
```javascript
UglifyJS.minify("alert('hello');", {
compress: {
global_defs: {
"@alert": "console.log"
}
}
}).code;
// returns: 'console.log("hello");'
```
Otherwise it would be replaced as string literal:
```javascript
UglifyJS.minify("alert('hello');", {
compress: {
global_defs: {
"alert": "console.log"
}
}
}).code;
// returns: '"console.log"("hello");'
```
### Using native Uglify AST with `minify()` ### Using native Uglify AST with `minify()`
```javascript ```javascript
// example: parse only, produce native Uglify AST // example: parse only, produce native Uglify AST