2015-09-04 64 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