将middleman变量传递给grunt文件

时间:2015-05-14 15:37:53

标签: javascript gruntjs html-email middleman

我的中间人模板有一个' id'我将html电子邮件作业名称放入的变量。

我知道如果我将中间人erb文件从index.html.erb更改为newName.html.erb,它会将其输出为最终文件名。

我的问题是,我的大部分grunt任务都需要我希望它们运行的​​文件名(我尝试使用* .html,但它只适用于某些任务)并且没有在grunt中编辑如果我改变了erb文件名,那么在开始grunt之前他们就不会执行文件。

有没有办法传递咕噜声' id'变量命名文件中间人正在输出,并将该变量插入各种任务,所以他们也接受这个文件名?

这是我的咕噜声配置:

grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        // Build html
        middleman: {
            options: {
                useBundle: true
            },
            server: {},
            build: {
                options: {
                    command: "build"
                }
            }
        },
        // Format html file
        prettify: {
            options: {
                // Task-specific options go here.
            },
            one: {
                src: 'build/index.html',
                dest: '_output/index.html'
            }
        },
        // Run the text converter
        execute: {
            simple_target_with_args: {
                options: {
                    // execute node with additional arguments
                    args: ['_output/index.html']
                },
                src: ['node_modules/node-text-converter/converter.js']
            }
        },
        'special-html': {
            compile: {
                files: {
                   '_output/index.html': '_output/index.html',
                }
            }
        },
        'phantomjs_screenshot': {
        main: {
            options: {
                delay: 1000
            },
            files: [{
                expand: true,
                cwd: '_output',
                src: ['**/*.html'],
                dest: '_output/screenshots/',
                ext: '.jpg'
            }]
        }
    }
});

1 个答案:

答案 0 :(得分:1)

您应该将变量存储在JSON文件中,并将其导入Middleman和Grunt。