Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When I minify css or js, why isn't it all on one line?

I understand that minifying tries to reduce file size by removing whitespace characters. Sometimes things end up on one line, but more often than not, there are multiple lines. I noticed that line breaks happen wherever spaces occur. Wouldn't it be better just to have it all on one line?

like image 480
Matthew Avatar asked Oct 14 '22 03:10

Matthew


2 Answers

Well with JavaScript, a line break can imply the end of a statement (in place of the ;). So putting it all on one line could cause issues with the code functioning correctly.

I would guess that it depends on the minimizer you are using, but that could be one reason. I would think the minimizer would try and account for this and put in semicolons where it can, but this ability could vary wildly between them.

like image 185
kemiller2002 Avatar answered Nov 10 '22 01:11

kemiller2002


If you are using yuicompressor-maven-plugin, you may face this issue. The YUI compressor plugin has an option linebreakpos for which the default value is zero. If you read the description about how this option is used by the original YUI compressor library at this page, you'll notice that a value of zero for this value means that a newline will be emitted after CSS rule or a semi-colon in javascript.

Fortunately, having a look at the implementation suggests an easy work-around. Just specify any value less than 0 and you should be good to go.

like image 30
Chandranshu Avatar answered Nov 10 '22 00:11

Chandranshu