如何仅使用uglifyjs缩小文件?

时间:2017-05-25 21:35:44

标签: javascript angularjs node.js minify uglifyjs

我曾尝试使用uglifyjs缩小javascript文件,但它只输出文件output.min.js中的文件名后跟分号,它告诉我"文件已成功保存。&#34 ;;不是js文件geolocation.service.js的缩小代码。有人可以帮忙吗?下面的代码保存在我命名为uglifyjs的文件中。我使用$ node uglifyjs.js来运行该文件。

var fs = require('fs');

var uglifyjs = require('uglify-js');

var result = uglifyjs.minify(["geolocation.service.js"]);

console.log(result.code);

fs.writeFile("output.min.js", result.code, function(err) {
    if(err) {
        console.log(err);
    } else {
        console.log("File was successfully saved.");
    }
});

2 个答案:

答案 0 :(得分:1)

The API minify(code)而非minify(file paths)

uglifyjs.minify(fs.readFileSync('geolocation.service.js', 'utf8'))

答案 1 :(得分:1)

var appClientFiles = {
"app" : fs.readFileSync('app_client/app.js', 'utf8'),
"controller": fs.readFileSync('app_client/home/home_controller.js', 'utf8'),
"geolocation": fs.readFileSync('app_client/common/services/geolocation.service.js', 'utf8'),
"data": fs.readFileSync('app_client/common/services/hubRadarData.service.js', 'utf8'),
"filters": fs.readFileSync('app_client/common/filters/formatDistance.filter.js', 'utf8'),
"about": fs.readFileSync('app_client/about/about.controller.js'),
"directives": fs.readFileSync('app_client/common/directives/ratingStars/ratingStars.directive.js', 'utf8'),
}

var uglified = uglifyJs.minify(appClientFiles, {compress: false});
if (uglified.error) throw uglified.error;

这是使用uglifyjs最小化多个JS文件的好方法,请记住始终使用一个对象来保存JavaScript文件,其中键是js文件的名称,而值是JavaScript文件的位置