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

Posted

技术标签:

【中文标题】如何通过 Grunt 配置目录递归 Sass 编译任务【英文标题】:How to configure directory-recursive Sass compilation task by Grunt 【发布时间】:2013-11-18 11:45:46 【问题描述】:

我是新手,正在学习如何配置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】:

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

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

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

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

【讨论】:

天啊,我的错误是“expand”与“expnad”的拼写错误,非常感谢。 确保不要在sass/folderdest/folder 之前添加/。由于某种原因,它打破了它。这就是我遇到的问题。

以上是关于如何通过 Grunt 配置目录递归 Sass 编译任务的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 grunt-sass 编译多个 scss 文件

使用 dart sass 实现,grunt-sass 不编译 css 文件而不抛出错误

如何加快 sass 编译速度?

Sass on Grunt总是创建一个空输出

使用grunt-sass编译node-sass,我得到错误“致命错误:”原始“参数必须是类型函数。”

带有咕噜声的sass不起作用