使用grunt-contrib-less定义变量

时间:2016-03-12 08:00:23

标签: css gruntjs less

除非我误解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有什么可能吗?或者我只是做错了什么?

1 个答案:

答案 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}

此时应该设置。