2014-12-03 53 views
1

我试图用maven的yuicompressor-plugin缩小一组js文件。这一个文件在UTF-8编码,因为它具有特殊字符:Maven yuicompressor-plugin生成ANSI编码的缩小js

String.prototype.removeTicks = function (/*thisArg */) { 
    var __r = 
    { 
     'À':'A','Á':'A','Â':'A','Ã':'A','Ä':'A','Å':'A','Æ':'E', 
     'È':'E','É':'E','Ê':'E','Ë':'E', 
     'Ì':'I','Í':'I','Î':'I', 
     'Ò':'O','Ó':'O','Ô':'O','Ö':'O', 
     'Ù':'U','Ú':'U','Û':'U','Ü':'U', 
     'N':'N' 
    }; 

    return this.replace(/[ÀÁÂÃÄÅÆÈÉÊËÌÍÎÒÓÔÖÙÚÛÜÑ]/gi, function(m) 
    { 
     var ret = __r[m.toUpperCase()]; 

     if (ret && m === m.toLowerCase()) 
      ret = ret.toLowerCase(); 

     return ret; 
    }); 
}; 

但是,当我运行的压缩机的输出文件进行编码的ANSI和所有特殊字符被打破。我尝试在插件配置中配置charset编码,并将所有文件更改为UTF-8,但这些都不起作用。以下是pom摘录:

<plugin> 
    <groupId>net.alchim31.maven</groupId> 
    <artifactId>yuicompressor-maven-plugin</artifactId> 
    <version>1.3.0</version> 
    <executions> 
     <execution> 
      <phase>prepare-package</phase> 
      <goals> 
       <goal>compress</goal> 
      </goals> 
     </execution> 
    </executions> 
    <configuration> 
     <nosuffix>true</nosuffix> 
     <nocompress>true</nocompress> 
     <sourceDirectory>${basedir}/../../public</sourceDirectory> 
     <outputDirectory>${basedir}/target</outputDirectory> 
     <encoding>UTF-8</encoding> 
     <aggregations> 
      <aggregation> 
       <removeIncluded>true</removeIncluded> 
       <output>${basedir}/target/${project.build.finalName}/js/custom.js</output> 
       <inputDir>${basedir}/target/js</inputDir> 
       <includes> 
        <include>util/string/string.js</include> 
        <include>...</include>         
       </includes> 
      </aggregation> 
     </aggregations> 
    </configuration> 
</plugin> 

任何人都曾遇到过这个问题并解决了它?

回答

0

确保您为正在注入的脚本在标记中放置了正确的字符集。这可能工作。

<script src="foo.js" type="text/javascript" charset="utf-8"></script>