如何通过Grunt配置目录递归Sass编译任务

时间:2013-11-07 00:19:45

标签: node.js coffeescript sass gruntjs

我是新手,学习如何配置coffee,jade和sass编译任务。 我可以成功配置咖啡和玉器目录的编译任务,但我不能为sass。 我的项目结构如下:

.                                                                                                   
├── Gruntfile.coffee                                                                                
├── node_modules                                                                                    
├── package.json                                                                                    
├── sass                                                                                            
│   └── index.sass                                                                                  
└── www

我的package.json是

{
  "name": "grunt-sass-test",
  "version": "0.1.0",
  "devDependencies": {
    "grunt": "~0.4.1",
    "grunt-contrib-sass": "~0.5.0"
  }
}

当Gruntfile.coffee吼叫时, $ grunt sass 成功编译index.css:

module.exports = (grunt) ->
  grunt.initConfig
    pkg: grunt.file.readJSON('package.json')
    sass:
      compile:
        files:[
          "www/index.css": "sass/index.sass"
        ]

但是如下所示,>>未找到源文件“index.sass”。错误显示

    sass:
      compile:
        cwd: 'sass'
        src: ['**/*.sass']
        dest: 'www/'
        ext: '.css'

如何配置递归sass编译任务?

1 个答案:

答案 0 :(得分:24)

在grunt中,所有递归文件都以相同的方式工作:

files: [{
  expand: true,
  cwd: "sass/folder",
  src: ["**/*.sass"],
  dest: "dest/folder",
  ext: ".css"
}]

expand用于递归,cwd是启动目录,src是正则表达式以匹配**(在文件夹中),dest是文件夹所在它在编译后保存,最后ext是添加的扩展名

这应该适用于所有使用文件的任务,在grunt中。