Как устранить ошибку «литералы объектов не могут содержать дублирующиеся ключи в строгом режиме ES5» с помощью плагина Maven minify? - PullRequest
0 голосов
/ 28 ноября 2018

Я использую плагин Maven Minify с Maven 3.5.У меня нижеуказанная конфигурация ...

                <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 голосов
/ 30 ноября 2018

Хотя Google Closure Compiler (который используется внутренним модулем minify для оптимизации исходного кода) по умолчанию ожидает ECMAScript 6 в качестве языка ввода, он, кажется, запускает дополнительные диагностические проверки , которые не принимаютучитывается уровень языка.

Эти диагностические проверки включают проверку на соответствие строгому режиму ECMAScript 5, которая запрещает дублирование ключей в объектах.

Как описано в этом ответе Sebstian Häger youможете включить эту диагностическую проверку в конфигурации minify, добавив

<closureWarningLevels>
    <es5Strict>OFF</es5Script>
</closureWarningLevels>
...