UglifyJS2在.array上抛出TypeError(" reserved-file")

时间:2016-07-20 16:02:44

标签: javascript minify

我写了一个简单的bash脚本,使用这行代码使用mishoo / UglifyJS2为我自动缩小一些存储库:

UILabel

它在我的Mac上运行良好,但我的同事无法运行它,并出现以下错误:

../bower_components/UglifyJS2/bin/uglifyjs src/* -c -m -o ${minifiedFile}

这是Windows兼容性问题还是设置缺少某些内容?我已经不得不从compressJs切换到尝试让minify在Windows上运行。

1 个答案:

答案 0 :(得分:0)

这不是一个完美的解决方案,但它对我有用。我在UglifyJS2/bin/uglifyjs.js删除了导致我麻烦的行。

第72行:

.describe("reserved-file", "File containing reserved names")

第77行:

.describe("pure-funcs", "List of functions that can be safely removed if their return value is not used")

。 第1-1-112行:

.array("reserved-file")
.array("pure-funcs")

行号536-554:

ast.walk(new UglifyJS.TreeWalker(function(node){
        if (node instanceof UglifyJS.AST_Seq) return; // descend
        if (node instanceof UglifyJS.AST_Assign) {
            var name = node.left.print_to_string({ beautify: false }).replace(/-/g, "_");
            var value = node.right;
            if (constants)
                value = new Function("return (" + value.print_to_string() + ")")();
            ret[name] = value;
            return true;    // no descend
        }
        if (node instanceof UglifyJS.AST_Symbol || node instanceof UglifyJS.AST_Binary) {
            var name = node.print_to_string({ beautify: false }).replace(/-/g, "_");
            ret[name] = true;
            return true;    // no descend
        }
        print_error(node.TYPE)
        print_error("Error parsing arguments for flag `" + flag + "': " + x);
        process.exit(1);
    }));

删除的行显然会影响功能但它仍然适用于我的目的。如果有人有更好的解决方案,我会标记它。