Reputation: 12044
I have the below command:
uglifyjs main.js bar.js -m toplevel reserved=['$','addTo','exports'] -c --source-map -o out.js
But it throws error:
ERROR: ENOENT: no such file or directory, open 'reserved=[$,addTo,exports]'
at Object.fs.openSync (fs.js:646:18)
at Object.fs.readFileSync (fs.js:551:33)
How can I use both options toplevel (mangle function names) and reserved under -m option? I am using latest uglifyJs and node 8.6 .
Upvotes: 5
Views: 1582
Reputation: 26
Maybe you can try not using command line, this works for me in the latest version of uglify-JS 3
var fs = require("fs");
var UglifyJs = require('uglify-js');
let data = fs.readFileSync('main.js','utf8')
let options = {
sourceMap:{
filename:"out.js",
url:"out.js.map"
},
mangle:{
reserved:["addTo","exports"],
toplevel:true,
}
};
var result = UglifyJs.minify(data,options)
console.log(result.code)
console.log(result.map)
fs.writeFile("out.js",result.code,function(err){
if(err){
console.log(err);
}else{
console.log("File was successfully saved")
}
})
fs.writeFile("out.js.map",result.map,function(err){
if(err){
console.log(err);
}else{
console.log("File was successfully saved")
}
})
Upvotes: 0
Reputation: 12044
Correct answer is:
uglifyjs main.js bar.js -m toplevel,reserved=['$','addTo','exports'] -c --source-map -o out.js
Upvotes: 2
Reputation: 1554
This should work:
uglifyjs -m reserved=['$','addTo','exports'] toplevel=true -c --source-map -o out.js -- main.js bar.js
Upvotes: 2