使用grunt.js生成动态文件名

时间:2012-11-27 14:03:00

标签: javascript node.js gruntjs

是否可以在内置grunt任务之外生成动态文件名(例如concatmin)?我尝试使用文档中描述的<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 %>'),但没有一个有效。

1 个答案:

答案 0 :(得分:1)

这在内置任务中隐藏在Grunt魔法的掩盖之下,实际上没有足够清晰的记录。

您需要使用像grunt.task.directive(dest)这样的内容来评估<config:..>之类的内容。在自定义任务中。

对于<%= foo %>,请查看Grunt templates

此外,如***这样的通配符,默认情况下也不会展开,如果您想在自定义任务中使用它们,可以使用grunt.file.expandFiles()