Compare commits
5 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5fd8244a2e | ||
|
|
c14e280585 | ||
|
|
bc3fa78e8c | ||
|
|
8c7c107765 | ||
|
|
3dd328dce3 |
17
README.md
17
README.md
@@ -490,21 +490,21 @@ can pass additional arguments that control the code output:
|
||||
Passing `-b` will set this to true, but you might need to pass `-b` even
|
||||
when you want to generate minified code, in order to specify additional
|
||||
arguments, so you can use `-b beautify=false` to override it.
|
||||
- `indent-level` (default 4)
|
||||
- `indent-start` (default 0) -- prefix all lines by that many spaces
|
||||
- `quote-keys` (default `false`) -- pass `true` to quote all keys in literal
|
||||
- `indent_level` (default 4)
|
||||
- `indent_start` (default 0) -- prefix all lines by that many spaces
|
||||
- `quote_keys` (default `false`) -- pass `true` to quote all keys in literal
|
||||
objects
|
||||
- `space-colon` (default `true`) -- insert a space after the colon signs
|
||||
- `ascii-only` (default `false`) -- escape Unicode characters in strings and
|
||||
- `space_colon` (default `true`) -- insert a space after the colon signs
|
||||
- `ascii_only` (default `false`) -- escape Unicode characters in strings and
|
||||
regexps (affects directives with non-ascii characters becoming invalid)
|
||||
- `inline-script` (default `false`) -- escape the slash in occurrences of
|
||||
- `inline_script` (default `false`) -- escape the slash in occurrences of
|
||||
`</script` in strings
|
||||
- `width` (default 80) -- only takes effect when beautification is on, this
|
||||
specifies an (orientative) line width that the beautifier will try to
|
||||
obey. It refers to the width of the line text (excluding indentation).
|
||||
It doesn't work very well currently, but it does make the code generated
|
||||
by UglifyJS more readable.
|
||||
- `max-line-len` (default 32000) -- maximum line length (for uglified code)
|
||||
- `max_line_len` (default 32000) -- maximum line length (for uglified code)
|
||||
- `bracketize` (default `false`) -- always insert brackets in `if`, `for`,
|
||||
`do`, `while` or `with` statements, even if their body is a single
|
||||
statement.
|
||||
@@ -596,7 +596,8 @@ performs all the steps in a configurable manner.
|
||||
Example:
|
||||
```javascript
|
||||
var result = UglifyJS.minify("var b = function() {};");
|
||||
console.log(result.code); // minified output
|
||||
console.log(result.code); // minified output
|
||||
console.log(result.error); // runtime error
|
||||
```
|
||||
|
||||
You can also compress multiple files:
|
||||
|
||||
@@ -193,7 +193,7 @@ function run() {
|
||||
}
|
||||
}
|
||||
} catch (ex) {
|
||||
fatal("ERROR: " + ex.message);
|
||||
fatal(ex.stack);
|
||||
}
|
||||
var result = UglifyJS.minify(files, options);
|
||||
if (result.error) {
|
||||
@@ -220,7 +220,7 @@ function run() {
|
||||
console.error("Supported options:");
|
||||
console.error(ex.defs);
|
||||
}
|
||||
fatal("ERROR: " + ex.message);
|
||||
fatal(ex.stack);
|
||||
} else if (program.output == "ast") {
|
||||
console.log(JSON.stringify(result.ast, function(key, value) {
|
||||
if (skip_key(key)) return;
|
||||
@@ -263,7 +263,7 @@ function run() {
|
||||
}
|
||||
|
||||
function fatal(message) {
|
||||
console.error(message);
|
||||
console.error(message.replace(/^\S*?Error:/, "ERROR:"));
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
@@ -303,7 +303,7 @@ function read_file(path, default_value) {
|
||||
return fs.readFileSync(path, "utf8");
|
||||
} catch (ex) {
|
||||
if (ex.code == "ENOENT" && default_value != null) return default_value;
|
||||
fatal("ERROR: " + ex.message);
|
||||
fatal(ex.stack);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
"homepage": "http://lisperator.net/uglifyjs",
|
||||
"author": "Mihai Bazon <mihai.bazon@gmail.com> (http://lisperator.net/)",
|
||||
"license": "BSD-2-Clause",
|
||||
"version": "3.0.1",
|
||||
"version": "3.0.2",
|
||||
"engines": {
|
||||
"node": ">=0.8.0"
|
||||
},
|
||||
|
||||
@@ -185,7 +185,7 @@ describe("bin/uglifyjs", function () {
|
||||
|
||||
exec(command, function (err, stdout, stderr) {
|
||||
assert.ok(err);
|
||||
assert.strictEqual(stderr, "ERROR: inline source map only works with singular input\n");
|
||||
assert.strictEqual(stderr.split(/\n/)[0], "ERROR: inline source map only works with singular input");
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
@@ -856,23 +856,21 @@ function createVarName(maybe, dontStore) {
|
||||
}
|
||||
|
||||
function try_beautify(code, result) {
|
||||
try {
|
||||
var beautified = UglifyJS.minify(code, {
|
||||
compress: false,
|
||||
mangle: false,
|
||||
output: {
|
||||
beautify: true,
|
||||
bracketize: true,
|
||||
},
|
||||
}).code;
|
||||
if (sandbox.same_stdout(sandbox.run_code(beautified), result)) {
|
||||
console.log("// (beautified)");
|
||||
console.log(beautified);
|
||||
return;
|
||||
}
|
||||
} catch (e) {
|
||||
var beautified = UglifyJS.minify(code, {
|
||||
compress: false,
|
||||
mangle: false,
|
||||
output: {
|
||||
beautify: true,
|
||||
bracketize: true,
|
||||
},
|
||||
});
|
||||
if (beautified.error) {
|
||||
console.log("// !!! beautify failed !!!");
|
||||
console.log(e.stack);
|
||||
console.log(beautified.error.stack);
|
||||
} else if (sandbox.same_stdout(sandbox.run_code(beautified.code), result)) {
|
||||
console.log("// (beautified)");
|
||||
console.log(beautified.code);
|
||||
return;
|
||||
}
|
||||
console.log("//");
|
||||
console.log(code);
|
||||
@@ -908,12 +906,13 @@ function log_suspects(minify_options, component) {
|
||||
var o = JSON.parse(JSON.stringify(options));
|
||||
o[name] = false;
|
||||
m[component] = o;
|
||||
try {
|
||||
var r = sandbox.run_code(UglifyJS.minify(original_code, m).code);
|
||||
return sandbox.same_stdout(original_result, r);
|
||||
} catch (e) {
|
||||
var result = UglifyJS.minify(original_code, m);
|
||||
if (result.error) {
|
||||
console.log("Error testing options." + component + "." + name);
|
||||
console.log(e);
|
||||
console.log(result.error);
|
||||
} else {
|
||||
var r = sandbox.run_code(result.code);
|
||||
return sandbox.same_stdout(original_result, r);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -981,18 +980,16 @@ for (var round = 1; round <= num_iterations; round++) {
|
||||
original_code = createTopLevelCode();
|
||||
original_result = sandbox.run_code(original_code);
|
||||
(typeof original_result != "string" ? fallback_options : minify_options).forEach(function(options) {
|
||||
try {
|
||||
uglify_code = UglifyJS.minify(original_code, JSON.parse(options)).code;
|
||||
} catch (e) {
|
||||
uglify_code = e;
|
||||
}
|
||||
|
||||
ok = typeof uglify_code == "string";
|
||||
if (ok) {
|
||||
uglify_code = UglifyJS.minify(original_code, JSON.parse(options));
|
||||
if (!uglify_code.error) {
|
||||
uglify_code = uglify_code.code;
|
||||
uglify_result = sandbox.run_code(uglify_code);
|
||||
ok = sandbox.same_stdout(original_result, uglify_result);
|
||||
} else if (typeof original_result != "string") {
|
||||
ok = uglify_code.name == original_result.name;
|
||||
} else {
|
||||
uglify_code = uglify_code.error;
|
||||
if (typeof original_result != "string") {
|
||||
ok = uglify_code.name == original_result.name;
|
||||
}
|
||||
}
|
||||
if (verbose || (verbose_interval && !(round % INTERVAL_COUNT)) || !ok) log(options);
|
||||
else if (verbose_error && typeof original_result != "string") {
|
||||
|
||||
Reference in New Issue
Block a user