首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有什么办法可以忽略google-closure的错误吗?

有什么办法可以忽略google-closure的错误吗?
EN

Stack Overflow用户
提问于 2018-04-09 13:00:55
回答 1查看 777关注 0票数 0

我试着压缩Inputmask.js文件。下面是我的代码

代码语言:javascript
复制
public class JSFileMinifyTest {
    public static void main(String[] args) throws Exception {
        String sourceFileName = "D:\\temp\\jquery.inputmask.bundle.js";
        String outputFilename = "D:\\temp\\combined.min.js";

        com.google.javascript.jscomp.Compiler.setLoggingLevel(Level.INFO);
        com.google.javascript.jscomp.Compiler compiler = new com.google.javascript.jscomp.Compiler();

        CompilerOptions options = new CompilerOptions();
        CompilationLevel.WHITESPACE_ONLY.setOptionsForCompilationLevel(options);
        options.setAggressiveVarCheck(CheckLevel.OFF);
        options.setRuntimeTypeCheck(false);
        options.setCheckRequires(CheckLevel.OFF);
        options.setCheckProvides(CheckLevel.OFF);
        options.setReserveRawExports(false);
        WarningLevel.VERBOSE.setOptionsForWarningLevel(options);

        // To get the complete set of externs, the logic in
        // CompilerRunner.getDefaultExterns() should be used here.
        SourceFile extern = SourceFile.fromCode("externs.js", "function alert(x) {}");
        SourceFile jsFile = SourceFile.fromFile(sourceFileName);

        compiler.compile(extern, jsFile, options);

        for (JSError message : compiler.getWarnings()) {
            System.err.println("Warning message: " + message.toString());
        }

        for (JSError message : compiler.getErrors()) {
            System.err.println("Error message: " + message.toString());
        }

        FileWriter outputFile = new FileWriter(outputFilename);
        outputFile.write(compiler.toSource());
        outputFile.close();
    }
}

但压缩此js文件时出现错误。

代码语言:javascript
复制
Apr 09, 2018 11:29:18 AM com.google.javascript.jscomp.parsing.ParserRunner parse
INFO: Error parsing D:\temp\jquery.inputmask.bundle.js: Compilation produced 3 syntax errors. (D:\temp\jquery.inputmask.bundle.js#1)
Apr 09, 2018 11:29:18 AM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: D:\temp\jquery.inputmask.bundle.js:1002: ERROR - Parse error. identifier is a reserved word
                static || null !== test.fn && void 0 !== testPos.input ? static && null !== test.fn && void 0 !== testPos.input && (static = !1, 
                ^

Apr 09, 2018 11:29:18 AM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: D:\temp\jquery.inputmask.bundle.js:1003: ERROR - Parse error. syntax error
                maskTemplate += "</span>") : (static = !0, maskTemplate += "<span class='im-static''>");
                             ^

Apr 09, 2018 11:29:18 AM com.google.javascript.jscomp.LoggerErrorManager println
SEVERE: D:\temp\jquery.inputmask.bundle.js:1010: ERROR - Parse error. missing variable name
                var maskTemplate = "", static = !1;
                                       ^

Apr 09, 2018 11:29:18 AM com.google.javascript.jscomp.LoggerErrorManager printSummary
WARNING: 3 error(s), 0 warning(s)
Error message: JSC_PARSE_ERROR. Parse error. identifier is a reserved word at D:\temp\jquery.inputmask.bundle.js line 1002 : 16
Error message: JSC_PARSE_ERROR. Parse error. syntax error at D:\temp\jquery.inputmask.bundle.js line 1003 : 29
Error message: JSC_PARSE_ERROR. Parse error. missing variable name at D:\temp\jquery.inputmask.bundle.js line 1010 : 39

有没有什么方法可以跳过语法验证或者忽略错误并继续压缩?

EN

回答 1

Stack Overflow用户

发布于 2018-09-14 05:07:00

默认情况下,编译器会将代码解析为“use strict”。‘'static’是严格模式下的保留字。您可以更改语言模式,也可以简单地将变量从'strict‘重命名为其他名称。

严格模式保留字记录如下:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Strict_mode#Paving_the_way_for_future_ECMAScript_versions

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49725846

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档