我正在尝试使用Grunt选项定义文件路径和文件名。这曾经可以工作,但是现在我遇到了意外的令牌错误。
var myTarget = grunt.option('target');
'build/assets/css/' + myTarget + '.css': 'source/scss/' + myTarget + '/styles.scss'
答案 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 option,config和templates的更多信息。
希望有帮助。