views:

816

answers:

3

I want to use YUI Compressor to combine and compress my css and js file sets when I compile my project. YUI Compressor only takes as input single files. I've tried using the following (Windows) commands to append to the output files, but strange characters appear in the output where appendage occurs. How can I use windows command line or powershell to achieve this?

java -jar yuicompressor-2.4.2.jar --charset utf-8 jquery-1.3.2.js > scripts-all.min.js
java -jar yuicompressor-2.4.2.jar --charset utf-8 jquery.superfish.js >> scripts-all.min.js
A: 

You can try the Invoke-Expression cmdlet (iex is an alias):

PS > $cmd = 'java -jar yuicompressor-2.4.2.jar --charset utf-8 jquery-1.3.2.js > scripts-all.min.js'
PS > iex $cmd
Shay Levy
+3  A: 

If you're developing on Windows, don't forget there's a .NET port of YUI Compressor. You can do all that as a post-build event in visual studio, as part of a TFS Build or just import the dll's into your application and use it in that (eg. compressing on the fly).

Pure.Krome
+2  A: 

My simple solution (before knowing about the .NET port of YUI Compressor) was to:

copy /b jquery.js+jquery.superfish.js+jquery.qtip.js+NOTICE core.js
java -jar yuicompressor-2.4.2.jar --charset utf-8 -o core-min.js core.js

That has been working fine for me even though I can't quite understand why the /b (binary) flag was the trick that got rid of the strange characters. If anyone wants to enlighten me in a comment I'd appreciate it.

Aaron Wagner
Found my own sub-question answer here:http://beardscratchers.com/journal/compressing-css-and-javascript-with-yui-compressor#c000119 copy is not multibyte aware, hence the binary mode
Aaron Wagner