Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Generating source maps for multiple concatenated javascript files compiled from Coffeescript

Has any one had any success with this?

like image 863
nicksweet Avatar asked Apr 12 '13 06:04

nicksweet


2 Answers

I think it's more or less an unsolved problem: https://github.com/jashkenas/coffee-script/issues/2779 . Last meanigingful comment was from jwalton, a month ago.

Still, it doesn't seem rocket science to add support for it, so it will probably come soon.

Michael Ficarra (creator of CoffeeScript Redux) suggested using https://github.com/michaelficarra/commonjs-everywhere .

Two caveats:

  • It only works for bundling CommonJS modules.
  • It uses CoffeeScript Redux, which is still in beta (although working quite well it seems), and not 100% compatible with original CoffeeScript compiler.

So this does not work for what you ask for specifically, "concatenation".

Added April 14

You might have luck with these: combine-source-map and/or generate-sourcemap, both by same author.

Added April 26

This looks really simple: https://npmjs.org/package/mapcat . You just have to feed it the individual source map files generated by the coffee compiler.

Added May 16

Mariusz Nowak has just released webmake-coffee. Like CommonJS Everywhere, it requires code to be organized as CommonJS modules. Unlike CommonJS everywhere, it uses regular CoffeeScript.

It also seems the Grunt Coffee-Script plugin has had source-map support for concatenated files for quite a while (two months), effectively proving my original answer to be incorrect.

The upcoming version 2.0 of Snockets will have support for it too.

like image 154
Myrne Stol Avatar answered Sep 22 '22 17:09

Myrne Stol


I ended up going with browserify using coffeeify as the transform option, and enabling browserify's debug option. I bundle up the app on each request for my main.js file, and any runtime errors show up in my original source with pretty decent accuracy.

Sure beats mapping runtime errors in the concatenated/compiled js back to the coffee source with my eyeballs!

like image 21
nicksweet Avatar answered Sep 21 '22 17:09

nicksweet