coffeescriptで即時関数を使わない方法


coffeescriptはコンパイルされると即時関数に囲まれてしまいますが、この外に出したい場合はどうしたら良いのでしょうか?




coffee コマンドに渡すオプションに、 `-b` (--bare) オプションを付けてください。

（ただし、即時関数になっているのは変数名などがかち合わないように名前空間を調整しているので、このようにしてコンパイルすると、思わぬトラブルが起こる可能性があります。）

func.coffee :

[code]

    square = (x) -> x * x
    
    cube = (x) ->
        square(x) * x
    
[/code]

`coffee -c func.coffee` で出力された func.js :

[code]

    // Generated by CoffeeScript 1.7.1
    (function() {
      var cube, square;
    
      square = function(x) {
        return x * x;
      };
    
      cube = function(x) {
        return square(x) * x;
      };
    
    }).call(this);
    
[/code]

`coffee -b -c func.coffee` で出力された func.js :

[code]

    // Generated by CoffeeScript 1.7.1
    var cube, square;
    
    square = function(x) {
      return x * x;
    };
    
    cube = function(x) {
      return square(x) * x;
    };
    
[/code]

