JavaScript:使用对象';谁的财产在另一个财产中?

JavaScript:使用对象';谁的财产在另一个财产中?,javascript,gruntjs,Javascript,Gruntjs,在我的Grunt构建脚本中,有一个对象保存了我的大部分路径,如下所示: var project_config = { project_paths: { build: 'assets/css', docs: 'docs', src_scss: 'src/scss/**/*.scss', yaml: grunt.file.readYAML('docs/config.yml') } }; 如您所见,docs可以在“yam

在我的Grunt构建脚本中,有一个对象保存了我的大部分路径,如下所示:

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
中使用
文档

这样做不起作用,可能是因为对象无法访问自身:

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

使用Grunt模板也不起作用:
yaml:Grunt.file.readYAML('/config.yml')

当您想要访问路径时,Grunt还没有处理配置对象。您可以通过以下方式“手动”处理模板字符串:

var项目配置={
项目路径:{
构建:“资产/css”,
文件:“文件”,
src_scss:'src/scss/***.scss'
}
};
project\u config.project\u path.yaml=grunt.file.readYAML(
grunt.template.process(
“/config.yml”,
{data:project_config}
)
);

您是否尝试过
'/config.yml'
?假设
project\u config
是grunt配置对象。@FelixKling Woops yes!对不起,这只是我问题中的一个输入错误。将立即编辑。不能从所述文本内部直接使用文本中的JavaScript属性。(使用延迟评估的形式不算“直接”;Grunt可能有特殊之处,否则这就是问题的答案。)哦,好吧。。。我猜你正在阅读YAML文件的时候,Grunt还没有处理你的配置对象。谢谢,没有找到这个函数!
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}
    )
);