2017-01-03 10 views
0

私はcom.samaxes.maven minify-maven-pluginを使用して、GoogleクローズがサポートするいくつかのES6機能を使って書かれたJSソースファイルのコレクションを縮小しています。ここでは、関連する構成が私のPOMである:私は非厳密なモードを指定したにもかかわらず、ES5厳密モードを使用したGoogleクローズ

<!-- minify-maven-plugin: Minification using Google Closure --> 
<plugin> 
    <groupId>com.samaxes.maven</groupId> 
    <artifactId>minify-maven-plugin</artifactId> 
    <version>1.7.6</version> 
    <executions> 
     <!-- Creation of the common-[version].js file --> 
     <execution> 
      <id>common-minify</id> 
      <phase>prepare-package</phase> 
      <configuration> 
       <charset>UTF-8</charset> 
       <jsSourceDir>.</jsSourceDir> 
       <jsSourceFiles> 
        ... 
       </jsSourceFiles> 
       <jsFinalFile>./js/common-${project.version}.js</jsFinalFile> 
       <jsEngine>CLOSURE</jsEngine> 
       <closureLanguageIn>ECMASCRIPT6</closureLanguageIn> 
       <closureLanguageOut>ECMASCRIPT5</closureLanguageOut> 
      </configuration> 
      <goals> 
       <goal>minify</goal> 
      </goals> 
     </execution> 

     <!-- 2 other similarly configured executions are here. --> 
     ... 

    </executions> 
</plugin> 

問題は、私はこの構成のMavenゴールを実行したときに、私は次のエラーメッセージを取得するには、次のとおりです。

[INFO] Creating the merged file [common-1.8.24.js]. 
[INFO] Creating the minified file [common-1.8.24.min.js]. 
Jan 03, 2017 12:03:06 PM com.google.javascript.jscomp.LoggerErrorManager println 
SEVERE: [1mcommon-1.8.24.js:5577: [31mERROR[39m - object literals cannot contain duplicate keys in ES5 strict mode[0m 
    supportsDataForwarding: function() { 
    ^

Googleの閉鎖があるようにこれは私には見えます私が<closureLanguageOut>オプション(see doc here)で非厳密なECMASCRIPT5モードを指定したとしても、ES5厳密モードを使用してコンパイルしようとしました。厳格なモードを無効にしないのはなぜですか?

+0

私の回避策は、不平を言っていたすべての厳密モードの失敗を修正することでしたが、なぜクロージャが厳密モードを使用していたのかを知りたいのです。 – CullenJ

答えて

1

私は同じ問題を抱えていたし、縮小化-のmaven-pluginのは、それがES5 Strictモードを訴えた場合にビルドを失敗しないようにする方法を見つけた:

<plugin> 
<groupId>com.samaxes.maven</groupId> 
<artifactId>minify-maven-plugin</artifactId> 
<version>1.7.6</version> 
<executions> 
    <execution> 
     <id>default-minify</id> 
     <phase>process-resources</phase> 
     <configuration> 
      <charset>UTF-8</charset>     
      <closureWarningLevels> 
       <es5Strict>OFF</es5Strict> 
      </closureWarningLevels> 
      ... 
     </configuration> 
     <goals> 
      <goal>minify</goal> 
     </goals> 
    </execution> 
</executions> 

あなたはさらに微かもしれません以下の文書How to tell closure compiler which warnings you wantを使用して調整してください。これが役に立ちますようお願い致します:)

関連する問題