将中间人变量传递给 grunt 文件

pass middleman variable to grunt file

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

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

我的问题是我的大部分 g运行t 任务都需要我希望它们在 运行 上的文件名(我试过使用 *.html,但它仅适用于某些任务)并且在启动 g运行t 之前在 g运行t 文件中编辑它,如果我更改 erb 文件名,它们将不会执行。

有没有办法传递 g运行t 'id' 变量来命名中间人正在输出的文件,并将该变量插入各种任务中,以便他们也接受它作为文件名?

这是我的 g运行t 配置:

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'
            }]
        }
    }
});

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