在开发环境中,我的coffeeScript文件正确编译。但是当我将它们编译为生产时,我会得到类似的东西
CoffeeScript的:
$->
alert "hello world"
编译为Javascript
(function() {
$(function(){
alert("hello world");
})
}).call(this)
我已经检查了错误缩进和间距错误,或者混合了标签和空格,但没有。奇怪的是,当我使用编译器从coffeescript.org转换它时,它正确编译,它只是在生产环境中。有什么想法吗?
顺便说一下:我正在使用rails 4答案 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?