【问题标题】:How to minify files using only uglifyjs?如何仅使用 uglifyjs 来缩小文件?
【发布时间】:2017-05-25 21:35:44
【问题描述】:

我曾尝试使用 uglifyjs 缩小 javascript 文件,但它只在文件 output.min.js 中输出文件名,后跟分号,它告诉我“文件已成功保存。”;不是 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.");
    }
});

【问题讨论】:

    标签: javascript angularjs node.js minify uglifyjs


    【解决方案1】:

    The APIminify(code) 不是 minify(file paths)

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

    【讨论】:

    • 谢谢。这适用于一个文件,但不适用于多个输入文件和一个输出文件。我想将我所有的 app_client 文件压缩到一个 app.mini.js 中。你能帮我弄清楚怎么做吗?
    【解决方案2】:
    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 文件的位置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-07
      • 2013-06-05
      • 2012-11-14
      • 1970-01-01
      • 2020-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多