是否可以在内置grunt任务之外生成动态文件名(例如concat
或min
)?我尝试使用文档中描述的<config:concat.dist.dest>
或<%= dirs.dest %>
之类的内容。但是这永远不会被解释/编译,它只是写出字符串。
更新 这是基于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 %>')
,但没有一个有效。
答案 0 :(得分:1)
这在内置任务中隐藏在Grunt魔法的掩盖之下,实际上没有足够清晰的记录。
您需要使用像grunt.task.directive(dest)
这样的内容来评估<config:..>
之类的内容。在自定义任务中。
对于<%= foo %>
,请查看Grunt templates。
此外,如*
和**
这样的通配符,默认情况下也不会展开,如果您想在自定义任务中使用它们,可以使用grunt.file.expandFiles()
。