improve ease of use for --mangle except

This commit is contained in:
alexlamsl 2017-04-14 18:13:39 +08:00
parent 2af73232c7
commit e03c194beb
2 changed files with 9 additions and 6 deletions

View File

@ -142,7 +142,6 @@ The available options are:
``` ```
TODOs: TODOs:
``` ```
-r, --reserved Reserved names to exclude from mangling.
--lint Display some scope warnings --lint Display some scope warnings
--reserved-file File containing reserved names --reserved-file File containing reserved names
--reserve-domprops Make (most?) DOM properties reserved for --reserve-domprops Make (most?) DOM properties reserved for
@ -206,10 +205,10 @@ To enable the mangler you need to pass `--mangle` (`-m`). The following
(disabled by default). (disabled by default).
When mangling is enabled but you want to prevent certain names from being When mangling is enabled but you want to prevent certain names from being
mangled, you can declare those names with `--reserved` (`-r`) — pass a mangled, you can declare those names with `--mangle except` — pass a
comma-separated list of names. For example: comma-separated list of names. For example:
uglifyjs ... -m -r '$,require,exports' uglifyjs ... -m except=[$,require,exports]
to prevent the `require`, `exports` and `$` names from being changed. to prevent the `require`, `exports` and `$` names from being changed.

View File

@ -246,10 +246,10 @@ function parseJS(flag, constants) {
var value = node.right; var value = node.right;
if (!constants) { if (!constants) {
options[name] = value; options[name] = value;
} else if (value instanceof UglifyJS.AST_Constant) { } else if (value instanceof UglifyJS.AST_Array) {
options[name] = value.getValue(); options[name] = value.elements.map(to_string);
} else { } else {
options[name] = value.print_to_string(); options[name] = to_string(value);
} }
return true; return true;
} }
@ -259,6 +259,10 @@ function parseJS(flag, constants) {
return true; return true;
} }
if (!(node instanceof UglifyJS.AST_Sequence)) throw node; if (!(node instanceof UglifyJS.AST_Sequence)) throw node;
function to_string(value) {
return value instanceof UglifyJS.AST_Constant ? value.getValue() : value.print_to_string();
}
})); }));
} catch(ex) { } catch(ex) {
fatal("Error parsing arguments for '" + flag + "': " + value); fatal("Error parsing arguments for '" + flag + "': " + value);