This project has moved. For the latest updates, please go here.

.less handler failing with stack overflow?

Aug 26, 2013 at 12:46 AM
We changed from the old version of the bundle transformer that used to use the real dotLess package, to the new one where it got dropped (I guess replaced with your own implementation?). Alas we immediately started to have some crashes with our .less files, specifically this:

AssetTranslationException: During translation of LESS-code, readed from the file '/Content/LegacyStylesheet.less', to CSS-code syntax error has occurred. See more details: Error type: Syntax Message: Out of stack space File: /App_Data/Mixins.less

We have back leveled the code for now, but I am not sure where to start with trying to reproduce this because this ONLY occurred on our live server. It did not happen on our development or staging servers. Any suggestions on what might cause this?

For now we are back on the old version that uses dotLess, which means we cannot update the code until this is fixed.
Coordinator
Aug 26, 2013 at 7:27 AM
Hello, KendallB!

I recommend to read the following - http://bundletransformer.codeplex.com/workitem/48
Aug 26, 2013 at 2:30 PM
So there is no code fix to make this work? We have to figure out why it fails on our live server and try to find a way to fix our .less code? This works with the old dotLess engine so it seems your new .less engine should continue to work with .less files that work with dotLess?

Also we cannot reproduce this on our development machines right now, so it is hard to debug.
Coordinator
Aug 26, 2013 at 2:39 PM
What the version of Internet Explorer is installed on your production server?
Aug 26, 2013 at 2:45 PM
Edited Aug 26, 2013 at 2:46 PM
Oh, so the new code relies on the installed IE for the .less processing?? Is there some reason this was done when the dotLess engine used before did a good job? Having our code rely on an external dependency like IE on our server when we never update that piece (it is never used; we use Firefox only if we need a browser there) seems to be a disaster waiting to happen.

Would it be possible to maintain two versions of this transformer? One using dotLess and one using the IE engine? Then we can pick our poison ...
Coordinator
Aug 26, 2013 at 2:52 PM
I will not support 2 branches for BundleTransformer.Less.

I recommend you to install Internet Explorer 9 or 10 on your server and developer's computers.
Aug 28, 2013 at 5:08 PM
Edited Aug 28, 2013 at 5:08 PM
That may not be a realistic expectation for KendallB, it certainly is not for my team.

Would you consider switching your JavaScript depenancy to Noeis.Javascript? This is the Google V8 JavaScript engine in a .Net wrapper. it is available here:

https://javascriptdotnet.codeplex.com/

A member of my team has already altered the BundleTransformer locally to use Noeis.Javascript, and it is working fine.
Coordinator
Aug 28, 2013 at 5:51 PM
You know that for Noesis Javascript.NET on the server you need to install the Microsoft Visual C++ 2010 Redistributable Package? In addition, this product is in Beta status.

One of my minifiers uses it - BundleTransformer.Csso. There are some problems mainly related with need to switch assemblies for different platforms (x86 and x64). If a sober look at things, then for the Noesis need a wrapper (switcher).

I am glad you managed to connect the Noesis to the BundleTransformer.Less. For this and created Open Source.

I just don't understand why are you making me claim? Bundle Transformer is an Open Source project (you can read the text of the license). And you behave like a disgruntled user of a commercial product. User Spamagnet writing offensive things.

In the next few months I can't solve your problem. Or install Internet Explorer 9, or use your assembly on the basis of Noesis.
Aug 28, 2013 at 6:55 PM
While I can understand this project was probably changed in order to allow for using the latest .less standard, and the dotLess project seems to have stagnated on getting the latest standards supported, making a dependency on installing a correct version of IE is problematic for two reasons:
  1. On servers, admins generally don't care about IE since it is rarely (if ever used), and companies like Rackspace do not bother with security updates to update the browser. Hence the reason our server never got updated past IE8. On our server, we use Firefox when we need a browser from an RDP session, not IE. And of course, being Micr$oft IE, we did update it to IE10 and guess what. Had to reboot the server! Not nice. So our site was offline for 10 minutes in the middle of the night so we could update IE.
  2. Although this does not affect me, there are developers out there using ASP.NET MVC on the Mono platform on Linux, and I am pretty sure dotLess runs there. This new bundle trasnformer has no hope of ever running on Mono, if it relies on external dependencies specific to Microsoft.
So for the time being we have updated IE on our server and we plan to try the new bundle transformer on it, since it appears to work correctly in all our tests. And while I do understand this is an open source project, it does get used by real developers running real sites. So this change will likely have a negative impact for a lot of folks and will end up having one of two results for them; 1) people will stick to the last version using dotLess and 2) someone will fork it and produce a new version that just use dotLess and maintain that.
Sep 10, 2013 at 3:27 PM
It's strange that this project would now require a dependency on the browser version.
Coordinator
Sep 10, 2013 at 3:30 PM
Hello, Michaell!

In Bundle Transformer 1.8.0 is solved this problem. Now you can choose the JavaScript engine (MSIE or V8).

I recommend to read the text of release - http://bundletransformer.codeplex.com/releases/view/111749. And readme.txt files of your packages.