44

I'd like to have Rails produce source maps alongside the compiled coffeescript/minified JS, for better error logging. There doesn't seem to be comprehensive documentation on the net on how to do this, yet, though. Has anyone done this?

I'm on Rails 3.2 and Heroku.

4

4 回答 4

13

Rails 支持缩小 JavaScript 的源映射!Rails 依赖Sprockets进行资产编译,并且在此 pull request中将 source maps 支持添加到 Sprockets 中。

于 2014-01-08T21:55:27.513 回答
4

如果您真的不想要源映射,而只是想要咖啡脚本编译异常中的行号,请尝试以下操作:

过去,仅在 Gemfile 中包含咖啡轨会在原始咖啡脚本源中产生带有行号的异常。然后,它们以无行号的异常消失了。我做了一些挖掘,发现coffee-script-source1.5.x 在编译异常中给出了行号,而coffee-script-source1.6.x 没有。我相信这是一个错误,如果这在未来被“修复”,我不会感到惊讶。

# Gemfile
gem 'coffee-rails', '~> 4.0.0'
  gem 'coffee-script-source', '~> 1.5.0' # 1.6 doesn't include line numbers in exceptions

然后你会得到像 ('coffee-script-source', '~> 1.5.0') 这样的异常

Showing /Users/.../app/views/layouts/application.html.erb where line #12 raised:

SyntaxError: missing } on line 15
  (in /Users/.../app/assets/javascripts/app.js.coffee)

而不是 ('coffee-script-source', '~> 1.6.3')

Showing /Users/.../app/views/layouts/application.html.erb where line #12 raised:

SyntaxError: missing }
  (in /Users/.../app/assets/javascripts/app.js.coffee)
于 2013-09-28T04:53:13.167 回答
3

测试了这个。有用。https://github.com/markbates/coffee-rails-source-maps。但是,它会使您的资产渲染速度慢得多。

于 2013-07-30T12:49:08.667 回答
2

这看起来应该可以工作:http ://alexspeller.com/2012/09/15/Source_maps_for_coffeescript_in_rails.html

不过,请记住最后的警告:

重要提示:这个相当残酷的 hack 替换了普通的 coffeescript 编译器,它使用的是 CoffeeScriptRedux 编译器,实际上这还没有完成。这只是一个概念证明,您可能不应该使用它。

所以我不建议在生产环境中运行它,但如果你有一个暂存环境(也在 Heroku 上,也有缩小的 Javascript),它可能会很有用。

于 2013-02-24T07:02:39.673 回答