如何克服Maven minify插件的“对象文字在ES5严格模式下不能包含重复键”的错误?

时间:2018-11-27 21:10:54

标签: maven maven-3 maven-plugin minify

我在Maven 3.5中使用了Maven minify插件。我有以下配置...

                <plugin>
                    <groupId>com.samaxes.maven</groupId>
                    <artifactId>minify-maven-plugin</artifactId>
                    <version>1.7.6</version>
                    <executions>
                        <execution>
                            <id>default-minify</id>
                            <phase>verify</phase>
                            <configuration>
                                <cssSourceIncludes>
                                    <cssSourceInclude>**/*.css</cssSourceInclude>
                                </cssSourceIncludes>
                                <cssTargetDir>../${project.artifactId}/css</cssTargetDir>
                                <jsSourceExcludes>
                                    <jsSourceExclude>lib/pdf.js</jsSourceExclude>
                                    <jsSourceExclude>lib/pdf.worker.js</jsSourceExclude>
                                    <jsSourceExclude>ckeditor_4.2/**</jsSourceExclude>
                                    <jsSourceExclude>geogebra/**</jsSourceExclude>
                                    <jsSourceExclude>contextMenu/**</jsSourceExclude>
                                    <jsSourceExclude>wPaint/**</jsSourceExclude>
                                </jsSourceExcludes>
                                <jsSourceIncludes>
                                    <jsSourceInclude>**/*.js</jsSourceInclude>
                                </jsSourceIncludes>
                                <jsTargetDir>../${project.artifactId}/js</jsTargetDir>
                                <jsEngine>CLOSURE</jsEngine>
                                <webappTargetDir>${project.build.outputDirectory}</webappTargetDir>
                                <skipMerge>true</skipMerge>
                                <nosuffix>true</nosuffix>
                            </configuration>
                            <goals>
                                <goal>minify</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

但是,我在以下文件中收到此错误...

SEVERE: panel.js:845: ERROR -  with         

    SIDE_PANEL_BEGIN_CLOSE_EVENT:SIDE_PANEL_BEGIN_CLOSE_EVENT,
            ^

    Nov 27, 2018 2:57:06 PM com.google.javascript.jscomp.LoggerErrorManager printSummary
    WARNING: 1 error(s), 0 warning(s)

我的应用程序中的所有内容都可以在未压缩的文件中正常运行,因此我认为我只是在配置中犯了一个错误,但看不到什么。我该如何纠正配置,以便在没有错误的情况下进行优化而又不影响代码的基本功能?

1 个答案:

答案 0 :(得分:0)

默认情况下,尽管Google的Closure编译器(minify插件在后台使用它来优化源代码)期望ECMAScript 6作为输入语言,但它似乎会运行额外的diagnostic checks,而这不会影响语言水平帐户。

这些诊断检查包括一项符合ECMAScript 5严格模式的检查,该检查禁止对象中重复键。

this answer by Sebstian Häger中所述,您可以通过添加来缩小诊断配置中的诊断检查

DECLARE @T DATETIME, @F BIGINT;
SET @T = GETDATE();
WHILE DATEADD(SECOND,120,@T)>GETDATE()
SET @F=POWER(2,30);