2013-03-01 62 views
3

我有一個Gruntfile.coffee具有grunt-contrib-coffee配置是這樣的:如何避免像__indexOf()與咕嚕-的contrib咖啡多個輔助實現

coffee: 
    compile: 
    files: 
     'public/assets/application.js': [ 
      'multiple/files' #, ... 
     ] 
    options: 
     bare: true 

存在的問題是,它產生的輔助方法的多個實施方式像

var __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; }; 

如何使它認識到這些實現已經編譯?

更新1

的原因是很明顯的是,編譯的JavaScript被串聯後,它得到了編譯。如果CoffeeScript在編譯之前連接,則可以避免這種情況。如果這不是我缺少的配置選項grunt-contrib-coffee,我會在github上提交一個問題。

所以問題仍然存在:如何在編譯它之前連接CoffeeScript,以避免多個helper實現?

更新2

有一種變通方法,它涉及與concat任務的源文件的手工拼接。這需要一個臨時文件,然後可以從CoffeeScript編譯爲JavaScript。它在issue I created中被提及。

將來,任務將能夠將他們的東西作爲緩衝區彼此傳遞(請參閱issue)。

回答

1

隨着咕嚕-的contrib咖啡-0.6.1這個作品與join選項:

coffee: 
    compile: 
    files: 
     'public/assets/application.js': [ 
      'multiple/files' #, ... 
     ] 
    options: 
     bare: true 
     join: true # concatenate coffee files before compiling. default is false