除非我误解this documentation,否则可以在less
中定义全局Gruntfile
变量,并在.less
文件中引用它(假装有原因)。
less: {
modVar: {
options: {
plugins: [
new (require('less-plugin-autoprefix'))
],
modifyVars: {
root: "<%= grunt.option('distRoot') %><%= grunt.option('distTarget') %>"
},
root: "<%= grunt.option('distRoot') %><%= grunt.option('distTarget') %>",
},
files: {
'<%= yeoman.dist %>/styles/main.less' : '<%= yeoman.app %>/styles/{,*}*.less'
}
},
那个(上面)是我Gruntfile
的条目,我试图在我的root
个文件(main.less)中引用变量.less
,但是每当它在我的控制台中抛出错误时,@root is undefined
中会出现“main.less
”。我误解grunt-contrib-less
有什么可能吗?或者我只是做错了什么?
答案 0 :(得分:2)
好吧,我明白了。不得不在我的gruntfile
中调整我较少的任务(基于文档/搜索问题部分):
less: {
options: {
compress: true,
yuicompress: true,
optimization: 2,
modifyVars: {
root: '"<%= grunt.option(\'distRoot\') %><%= grunt.option(\'distTarget\') %>"'
}
},
/* blah, blah, blah...other less stuff.... */
}
因此,我不需要为此变量修改创建一个完全独立的任务,而只需将modifyVars
选项放在less less任务的options部分中。更重要的是(因为我之前曾尝试尝试过),将我的变量的新值包装在单引号中,尽管已将它们加倍引用。这是一个令人头疼的问题。
您的变量应如下所示:
'"myWorkingValue"'
和不喜欢这样:
"myNonWorkingValue"
并且,为了完整性,请参考.less
文件中的变量,如下所示:
@{myModifiedVariable}
此时应该设置。