2012-11-27 97 views
1

是否可以在內置grunt任務外生成動態文件名(例如concatmin)?我試圖使用類似<config:concat.dist.dest><%= dirs.dest %>的東西,如文檔中所述。但是這從來沒有被解釋/編譯,它只是寫出字符串。使用grunt.js生成動態文件名

更新: 這就是我試圖基於jakub.g的答案。我grunt.js看起來是這樣的:

// ... grunt file contents 
    jquery: { 
     exclude: [], 
     version: '1.8.3', 
     dest: '../dist/js/jquery-' + grunt.task.directive('<config:jquery.version>') + '.js', 
     minify: false 
    }, // ... even more grunt file contents 

grunt.task.directive('<config:jquery.version>')回報null。所以文件名被命名爲jquery-null.js

我然後嘗試grunt.template.process('<%= grunt.jquery.version %>')grunt.config.process('<%= grunt.jquery.version %>'),但他們都沒有工作。

回答

1

這是在Grunt魔術的內置隱藏任務下隱藏的,實際上沒有足夠清晰的記錄。

你需要使用像grunt.task.directive(dest)這樣的東西來評估像<config:..>這樣的東西。在自定義任務中。對於<%= foo %>,看看Grunt templates

此外,像***,也沒有通配符默認展開,如果你想在自定義任務使用它們,你可以使用grunt.file.expandFiles()

+0

感謝您帶領我朝着正確的方向發展......但我無法實現這一目標。請看我更新的問題。謝謝 – gregory

+0

你應該將代碼放在'grunt.js'文件中(其中''或'<%= foo %>'),但通過讀取'dest'並執行'grunt.task'來更改'jquery'任務內的代碼。指令「等等的價值。 –

+0

好吧,現在就開始工作,非常感謝! – gregory