我有一个像这样Gruntfile.coffee
的grunt-contrib-coffee配置:
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,以避免多个助手实现?
更新 2
有一种解决方法,它涉及将源文件与concat
任务手动连接。这需要一个临时文件,然后可以将其从 CoffeeScript 编译为 JavaScript。我创建的问题中提到了它。
将来,任务将能够将它们的东西作为缓冲区传递给彼此(参见问题)。