2014-09-13 193 views
0

在我咕嚕構建腳本我有持有我的大部分路徑,像這樣的對象:JavaScript:在另一個屬性中使用對象的屬性?

var project_config = { 
    project_paths: { 
     build: 'assets/css', 
     docs: 'docs', 
     src_scss: 'src/scss/**/*.scss', 
     yaml: grunt.file.readYAML('docs/config.yml') 
    } 
}; 

正如你所看到的,docs可以再次在「YAML」中找到,因爲它只是一個路徑。

如何在yaml中使用docs

做它像這樣沒有工作,可能是因爲該對象不能訪問自己:

使用咕嚕的模板也沒有工作:yaml: grunt.file.readYAML('<%= project_paths.docs %>/config.yml')

+0

你嘗試''<%= project_paths.docs%>/config.yml''?假設'project_config'是grunt配置對象。 – 2014-09-13 17:57:07

+0

@FelixKling Woops是的!對不起,這只是我的問題中的一個錯字。現在將編輯。 – Sven 2014-09-13 17:58:35

+0

文字*中的JavaScript屬性不能直接在所述文字內使用*。 (使用延遲評估的形式並不算作「直接」;有可能一些特別的東西與咕嚕,否則這就是問題的答案。) – user2864740 2014-09-13 18:00:01

回答

1

在您需要的時刻要訪問路徑,Grunt尚未處理配置對象。您可以處理模板字符串 「手動」 與grunt.template.process

var project_config = { 
    project_paths: { 
     build: 'assets/css', 
     docs: 'docs', 
     src_scss: 'src/scss/**/*.scss' 
    } 
}; 
project_config.project_paths.yaml = grunt.file.readYAML(
    grunt.template.process(
     '<%= project_paths.docs %>/config.yml', 
     {data: project_config} 
    ) 
); 
+0

謝謝,沒有找到這個功能! – Sven 2014-09-13 18:58:52

相關問題