Rails和CoffeeScript在生产中编译错误

时间:2013-11-07 17:43:51

标签: ruby-on-rails compiler-errors coffeescript ruby-on-rails-4

在开发环境中,我的coffeeScript文件正确编译。但是当我将它们编译为生产时,我会得到类似的东西

CoffeeScript的:

$->
  alert "hello world"

编译为Javascript

(function() {
   $(function(){
      alert("hello world");
   })
}).call(this)

我已经检查了错误缩进和间距错误,或者混合了标签和空格,但没有。奇怪的是,当我使用编译器从coffeescript.org转换它时,它正确编译,它只是在生产环境中。有什么想法吗?

顺便说一下:我正在使用rails 4

1 个答案:

答案 0 :(得分:0)

这是一个coffeescript设置。

(function() {
  # Code here
}).call(this)

默认情况下是由coffeescript生成的闭包(可以禁用,但你不应该禁用),用于避免全局命名空间污染
它不会影响脚本执行,一旦加载文档,你的jQuery代码仍会运行。

重要提示
您可以通过该闭包找到的唯一问题是您实际上很难声明全局变量。这可以通过这种方式解决:

window.yourvar = 'something'

此处还有关于如何禁用它的建议:How can I use option "--bare" in Rails 3.1 for CoffeeScript?