【问题标题】:grunt replace all less files into css filesgrunt 将所有less文件替换为css文件
【发布时间】:2013-03-13 22:23:07
【问题描述】:

我使用 grunt 将我所有的 less 文件转换为 css 文件,使用这个:

less: {
  development: {
    files: {
      "css/*.css": "less/*.less"
    }
  }
}

这在 0.3.0 版本上有效,但现在我已经升级到 v0.4.0,它不再有效了。

以下代码(在目标中不使用 *)适用于两个版本,因此问题在于目标文件上的星号。

less: {
  development: {
    files: {
      "css/test.css": "less/*.less"
    }
  }
}

有什么想法吗?

【问题讨论】:

  • 绝对指向您gruntjs.com/contributing,如果您发现您使用的软件中的错误,请报告。 (如果它有效,并且在升级后无效,那么制作您的软件的人是第一个提出问题的人)。他们有一个 IRC 频道,这将是获得答案的最快途径。

标签: javascript less gruntjs glob


【解决方案1】:

这不是错误。 Grunt 不再支持使用该配置在dest 中通配。但是,您可以使用“文件数组”格式,如下所示:

files: [
  {
    expand: true,
    cwd: 'src',
    src: ['*.less'],
    dest: 'assets/css/',
    ext: '.css'
  }
]

另外,如果您使用像 Bootstrap 这样的库,并且希望将每个 LESS 文件(组件)构建成一个单独的、单独的 CSS 文件,那么“开箱即用”并不是很容易实现的。原因是每个 LESS 文件都需要有自己的 @import 语句,用于 variables.lessmixins.less(以及其他几个像 forms.lessnavbar.less,因为它们在其他文件中被引用)。

为了让这一切变得简单,试试 Grunt 插件,assemble-less(免责声明:我是该项目的维护者之一,我也是 less.js 的核心团队成员)。 assemble-less 是 Tyler Kellen 的 grunt-contrib-less 的一个分支,但它添加了一些实验性功能,可以满足您的需求(如果您想要稳定性,请坚持使用 grunt-contrib-less)。例如:

// Project configuration.
grunt.initConfig({

  less: {
    // Compile all targeted LESS files individually
    components: {
      options: {
        imports: {
          // Use the new "reference" directive, e.g.
          // @import (reference) "variables.less";
          reference: [
            "bootstrap/mixins.less", 
            "bootstrap/variables.less" 
          ]
        }
      },
      files: [
        {
          expand: true,
          cwd: 'bootstrap/less',
          // Compile each LESS component excluding "bootstrap.less", 
          // "mixins.less" and "variables.less" 
          src: ['*.less', '!{boot,var,mix}*.less'],
          dest: 'assets/css/',
          ext: '.css'
        }
      ]
    }
  }
  ...
}

imports 功能本质上是将指定的@import 语句添加到源文件中。 reference 选项允许您“引用”其他 less 文件,同时仅输出通过 mixins 或 :extend 专门引用的样式。您可能需要引用比此处显示的文件更多的文件,因为 Bootstrap 交叉引用了来自其他组件的样式,例如 forms.less、buttons.less 等(有关示例,请参见 the Gruntfile in assemble-less。)

因此,使用上面示例中的配置运行assemble-less 任务后,assets/css 文件夹将具有:

  • alerts.css
  • badges.css
  • breadcrumbs.css
  • button-groups.css
  • buttons.css
  • carousel.css
  • close.css
  • code.css
  • component-animations.css
  • dropdowns.css
  • forms.css
  • glyphicons.css
  • grid.css
  • input-groups.css
  • jumbotron.css
  • labels.css
  • list-group.css
  • media.css
  • modals.css
  • navbar.css
  • navs.css
  • normalize.css
  • pager.css
  • pagination.css
  • panels.css
  • popovers.css
  • print.css
  • progress-bars.css
  • responsive-utilities.css
  • scaffolding.css
  • tables.css
  • theme.css
  • thumbnails.css
  • tooltip.css
  • type.css
  • utilities.css
  • wells.css

还有其他功能可以帮助您解决此问题,但 imports 功能非常强大,因为它允许您直接向 Gruntfile 添加指令。

【讨论】:

  • 不再支持是什么意思?你的意思是少指令?或任何 dest 参数?
猜你喜欢
  • 2016-02-02
  • 1970-01-01
  • 2014-08-31
  • 2015-10-18
  • 2015-02-28
  • 1970-01-01
  • 2012-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多