【发布时间】:2013-02-16 09:13:15
【问题描述】:
我有一个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。在issue I created中有提到。
将来,任务将能够将它们的东西作为缓冲区传递给彼此(参见issue)。
【问题讨论】:
标签: javascript coffeescript gruntjs