使用grunt汇编时如何为文件名添加前缀

时间:2016-01-18 17:53:36

标签: gruntjs assemble grunt-assemble

我已将此问题恢复为原始状态,以便将来的读者更具可读性。

我在Gruntfile.js

中有一些笨拙的汇编任务
assemble: {
        options: {
            flatten: true,
            layoutdir: 'test-templates/meta_test_templates',
            partials: [
                'test-templates/general_includes/**/*.hbs', 
                'test-templates/users/**/*.hbs', 
                'test-templates/content/**/*.hbs'] 
        },
        webmaster_crud: {
            options: { layout: 'webmaster_crud.hbs' },
            dest: '../compiled-tests/content/webmaster/',
            src: ['test-templates/content/content_types/*.hbs']
        }
}

我想在每个输出文件前加上单词webmaster

所以输出结果为:

/compiled-tests/content/webmaster/webmaster_file1.html
/compiled-tests/content/webmaster/webmaster_file2.html
etc

我的package.json文件中安装的软件包

"devDependencies": {
    "assemble": "^0.7.3",
    "grunt": "^0.4.5",
    "grunt-assemble": "^0.4.0",
    "grunt-contrib-clean": "^0.7.0"
}

更新19/1/16 我已经包含了传递给我的grunt.initConfig的整个汇编对象,并且我已经在package.json中包含了依赖项。

更新12/1/16 取消注释expand命令并包含随后出现的错误消息

更新12/1/16 已经将问题返回到其原始形式,但没有在函数中包含路径变量时发现的其他错误。

1 个答案:

答案 0 :(得分:0)

我并不完全清楚你要求的是什么,但我认为你可能正在寻找的是Grunt的“重命名”选项。以下配置可能会产生您希望的结果:

var path = require('path');

webmaster_crud: {
    options: {
        layout: 'webmaster_crud.hbs'
    },

    expand: true,
    flatten: true,
    rename: function (dest, matchedSrcPath) {
        var filename = 'webmaster_' + path.basename(matchedSrcPath);
        return path.join(dest, path.dirname(matchedSrcPath), filename);
    },

    dest: './compiled-tests/content/webmaster/',
    src: ['test-templates/content/content_types/*.hbs']
}