许多grunt插件在告诉它包含文件时允许这种语法:
['<%= src_dir %>/common/**/*.js', '<%= src_dir %>/app/**/*.js']
或
['<%= test_files.js %>']
有什么方法可以调用一些解析这些并给我一个实际输出数组的库吗?或者这是直接建立在咕噜声?我不确定google甚至可以使用哪些术语。
由于
答案 0 :(得分:1)
您要么正在寻找grunt.config.get
,grunt.config.process
或grunt.template.process
,具体取决于您从哪里获取值以及如何处理它们。
<强> grunt.config.get 强>
从项目的Grunt配置中获取值。如果指定了
prop
,则返回该属性的值,如果未定义该属性,则返回null
。如果未指定prop
,则返回整个配置对象的副本。模板字符串将使用grunt.config.process
方法递归处理。grunt.config.get([prop])
<强> grunt.config.process 强>
处理一个值,在遇到Grunt配置的上下文中递归扩展
<% %>
模板(通过grunt.template.process
方法)。此方法由grunt.config.get
自动调用,但不是由grunt.config.getRaw
调用。grunt.config.process(value)
[...]
<强> grunt.template.process 强>
处理Lo-Dash模板字符串。
template
参数将以递归方式处理,直到没有更多要处理的模板为止。默认数据对象是整个配置对象,但如果设置了
options.data
,则将使用该对象。默认模板分隔符为<% %>
,但如果options.delimiters
设置为自定义分隔符名称(使用grunt.template.addDelimiters
设置),则将使用这些模板分隔符。grunt.template.process(template [, options])
在模板内部,暴露了grunt对象,以便您可以执行
<%= grunt.template.today('yyyy') %>
之类的操作。 请注意,如果数据对象已具有grunt
属性,则无法在模板中访问grunt API。在此示例中,递归处理
baz
属性,直到不再需要处理<% %>
个模板。var obj = { foo: 'c', bar: 'b<%= foo %>d', baz: 'a<%= bar %>e' }; grunt.template.process('<%= baz %>', {data: obj}) // 'abcde'