Kompresujemy nasze pliki javascript (i css) kompresorem YUI podczas wykonywania naszego zadania budowania mrówek na naszym serwerze Jenkins CI. Jednak bardzo trudno jest określić, z którym kompilatorem JS YUI występują błędy. Widzimy kilka rzeczy, takich jak:Określa, który plik zawiera błąd podczas uruchamiania kompresora YUI z Ant
[minify-js] [ERROR] 3:35:unterminated string literal [minify-js] [minify-js] [ERROR] 3:35:syntax error [minify-js] [minify-js] [ERROR] 4:8:syntax error [minify-js] [minify-js] [ERROR] 1:0:Compilation produced 3 syntax errors. [minify-js] org.mozilla.javascript.EvaluatorException: Compilation produced 3 syntax errors. [minify-js] at com.yahoo.platform.yui.compressor.YUICompressor$1.runtimeError(YUICompressor.java:135) [minify-js] at org.mozilla.javascript.Parser.parse(Parser.java:410) [minify-js] at org.mozilla.javascript.Parser.parse(Parser.java:355) [minify-js] at com.yahoo.platform.yui.compressor.JavaScriptCompressor.parse(JavaScriptCompressor.java:312) [minify-js] at com.yahoo.platform.yui.compressor.JavaScriptCompressor.(JavaScriptCompressor.java:533) [minify-js] at com.yahoo.platform.yui.compressor.YUICompressor.main(YUICompressor.java:112) [minify-js] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [minify-js] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [minify-js] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [minify-js] at java.lang.reflect.Method.invoke(Method.java:616) [minify-js] at com.yahoo.platform.yui.compressor.Bootstrap.main(Bootstrap.java:20) [minify-js] Result: 2
na wyjściu, ale nie mam pojęcia, który z setek plików JS błąd pochodzi. Naszym zadaniem mrówka wygląda:
<target name="minify-js">
<apply executable="yuicompressor" parallel="false" dest="${global.dir}/" taskname="minify-js" force="true">
<fileset dir="${global.dir}/" includes="**/*.js">
<exclude name="*.min.js" />
</fileset>
<arg value="--type=js" />
<srcfile />
<arg value="-o" />
<targetfile />
<mapper type="identity" />
</apply>
</target>
Nie będąc ekspertem w Ant lub YUI kompresor, czy jest coś, co możemy zrobić tak, że nazwa pliku gdzie błąd się dzieje jest wyjście gdzieś?
Mam ten sam problem. Kompilacja Jnkinsa kończy się niepowodzeniem, gdy pliki js zawierają błąd składniowy. Czy istnieje sposób na wyjście plików, które mają błędy i pomijają te pliki, aby kompilacja nie przyniosła niepowodzenia.? – Jugi