Grunt变量作为文件名和文件路径

时间:2018-06-20 11:14:20

标签: node.js gruntjs

我正在尝试使用Grunt选项定义文件路径和文件名。这曾经可以工作,但是现在我遇到了意外的令牌错误。

var myTarget = grunt.option('target');
'build/assets/css/' + myTarget + '.css': 'source/scss/' + myTarget + '/styles.scss'

1 个答案:

答案 0 :(得分:2)

对于文件名和字符串中的变量,应使用特殊的占位符。首先,您应该加载选项(使用grunt.option())或配置(使用grunt.congif()),作为Grunt initConfig方法的选项。然后,您应该使用特殊的占位符<%= varname %>来使用加载的选项或配置。

grunt.initConfig({
    target : grunt.option('target'),
    ...
        files : {
            'build/assets/css/<%= target %>.css' : 'source/scss/<%= target %>/styles.scss'
        }
    ...
});

配置还可以加载对象,因此特殊占位符也可以匹配对象属性:

grunt.config('definitions', (function() {
    return {
        target : 'my-target'
    };
})());

稍后您的配置:

grunt.initConfig({
    config : grunt.config('definitions'),
    ...
        files : {
            'build/assets/css/<%= config.target %>.css' : 'source/scss/<%= config.target %>/styles.scss'
        }
    ...
});

在Grunt官方网站上了解有关Grunt optionconfigtemplates的更多信息。

希望有帮助。