coffeescript编译生成的wrapper函数,可以通过配置编译参数(http://coffeescript.org/#usage)去掉。
但是实际上这wrapper函数正式模块化所需要,也如你所写的wrapper函数形成了一个封闭的作用域,只有通过window.xxx暴露出来该模块的接口,这样难道不好么? 当然暴露方式可以是window也可以是放在其他全局变量上。
如果你使用seajs管理模块,也不冲突,seajs的模块定义包裹在这个wrapper函数中,其实seajs相当于上面的暴露接口的载体。