Skip to content

Commit

Permalink
implement --line-length
Browse files Browse the repository at this point in the history
  • Loading branch information
brewingcode committed Jul 5, 2022
1 parent aa2a9fb commit 8788eeb
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 0 deletions.
1 change: 1 addition & 0 deletions README.md
Expand Up @@ -118,6 +118,7 @@ a double dash to prevent input files being used as option arguments:
--keep-fargs Do not mangle/drop function arguments.
--keep-fnames Do not mangle/drop function names. Useful for
code relying on Function.prototype.name.
-l, --line-length <value> Maximum line length for output code.
--module Process input as ES module (implies --toplevel)
--name-cache <file> File to hold mangled name mappings.
--self Build UglifyJS as a library (implies --wrap UglifyJS)
Expand Down
5 changes: 5 additions & 0 deletions bin/uglifyjs
Expand Up @@ -21,6 +21,7 @@ var short_forms = {
d: "define",
e: "enclose",
h: "help",
l: "line-length",
m: "mangle",
o: "output",
O: "output-opts",
Expand Down Expand Up @@ -107,6 +108,7 @@ function process_option(name, no_value) {
" --ie Support non-standard Internet Explorer.",
" --keep-fargs Do not mangle/drop function arguments.",
" --keep-fnames Do not mangle/drop function names. Useful for code relying on Function.prototype.name.",
" -l, --line-length <value> Maximum line length for output code.",
" --module Process input as ES module (implies --toplevel)",
" --name-cache <file> File to hold mangled name mappings.",
" --rename Force symbol expansion.",
Expand Down Expand Up @@ -153,6 +155,9 @@ function process_option(name, no_value) {
case "annotations":
case "ie":
case "ie8":
case "line-length":
options.max_line_len = read_value(true);
break;
case "module":
case "timings":
case "toplevel":
Expand Down
2 changes: 2 additions & 0 deletions lib/minify.js
Expand Up @@ -80,6 +80,7 @@ function minify(files, options) {
ie8: false,
keep_fargs: false,
keep_fnames: false,
max_line_len: undefined,
mangle: {},
module: false,
nameCache: null,
Expand Down Expand Up @@ -214,6 +215,7 @@ function minify(files, options) {
var output = defaults(options.output, {
ast: false,
code: true,
max_line_len: options.max_line_len,
});
if (output.ast) result.ast = toplevel;
if (output.code) {
Expand Down
16 changes: 16 additions & 0 deletions test/mocha/cli.js
Expand Up @@ -964,4 +964,20 @@ describe("bin/uglifyjs", function() {
done();
}).stdin.end(code);
});
it("Should fail with empty --line-length", function(done) {
exec(uglifyjscmd + " -l", function(err, stdout, stderr) {
assert.ok(err);
assert.strictEqual(stdout, "");
assert.strictEqual(stderr, "ERROR: missing option argument for --line-length\n");
done();
})
});
it("Should work with --line-length", function(done) {
exec(uglifyjscmd + " --line-length 20 test/input/reduce/label.js", function(err, stdout, stderr) {
if (err) throw err
assert.strictEqual(stdout, "UNUSED:{console.log(\n0-.1-.1-.1)}\n");
assert.strictEqual(stderr, "");
done();
})
});
});

0 comments on commit 8788eeb

Please sign in to comment.