何らかの形で開発環境で私のcoffeeScriptファイルが正しくコンパイルされます。しかし、私が生産のためにそれらをコンパイルするとき、私はこのような何かを得る
CoffeeScript:
$->
alert "hello world"
Javascriptにコンパイル
(function() {
$(function(){
alert("hello world");
})
}).call(this)
私は間違ってインデントと間隔を確認しましたエラー、またはタブとスペースが混在していても何もありません。変わったことは、私がcoffeescript.orgからコンパイラを使ってコンパイルしたとき、それが正しくコンパイルされていることです。何か案は?
ところで:私はレール4を使用しています
回答:
回答№1は0それはcoffeescriptの設定です。
(function() {
# Code here
}).call(this)
クロージャは、デフォルトでcoffeescriptによって生成されますか(無効にすることはできますが、そうではありません)。 グローバル名前空間汚染を避ける.
これはスクリプトの実行に影響を与えません。ドキュメントがロードされるとjQueryコードが実行されます。
重要な注意点
そのクロージャで唯一見つけられる問題は、実際にグローバル変数を宣言するのが難しいことです。これは次のようにして解決できます。
window.yourvar = "something"
とにかくそれを無効にする方法についての提案もあります: CoffeeScriptのRails 3.1で "--bare"オプションを使用するにはどうすればよいですか?