2015-09-04 59 views
0

我想创建咕噜任务通天,我需要什么:CoffeeScript的动态哈希键

babel: 
    one: 
    files: 
     "dist/somefile-1.0.js": "dist/somefile-1.0.js" 

如果我使用字符串变量无里面,它的作品。

我有一个版本的全局变量,我试图做的:

version = "somefile-1.0" 

babel: 
    one: 
    files: 
     "dist/#{version}.js": "dist/#{version}.js" 

在这种情况下,我得到这个错误:行88 解析错误:意外“{”

第二次尝试:

patchV = {} 
patchV["dist/#{version}.js"] = "dist/#{version}.js" 

babel: 
    one: 
    files: 
     patchV 

在这种情况下,我没有得到错误,但没有发生任何事。

使用CoffeeScript 1.9.1。

+1

似乎很好的工作http://coffeescript.org/#try:babel%3A%0A%20%20one%3A%0A%20%20%20%20files%3A%0A%20%20%20% 20%20%20%22%2F%23%7Bversion%7D.js%22%3A%20%22dist%2F%23%7Bversion%7D.js%22 – elclanrs

+0

我也这么认为,但如果我使用没有变量的字符串它正在工作。在另一种情况下,不。 – Meldum

+1

什么是分配给该对象? 'babel:'不是定义变量的一种方式,你的意思是'babel =' – elclanrs

回答

0

只需使用你在普通的JavaScript用同样的方法:

babel = 
    one: 
    files: {} 

babel.one.files["dist/#{version}.js"] = "dist/#{version}.js" 

是的,这是有点啰嗦,但它这样做最地道的方式。

+0

'加载“Gruntfile.coffee”任务。 ..ERROR >> ReferenceError:babel未定义# – Meldum

+0

确实,因为您没有真正将您创建的对象分配给任何变量!现在在我的示例中修复了这一点您可能想要将变量分配给其他某个名称。 – deceze

+0

Got'>>没有找到“babel”目标。 警告:任务“babel”失败。使用 - 力量继续.' – Meldum