使用node-sass观察并编译整个文件夹?

时间:2014-03-20 21:51:22

标签: css node.js sass gruntjs compass-sass

Compass有一个可爱的命令,可以在给定目录中查看和编译所有scss:

compass watch *foldername*

然而,基于Ruby的指南针有点慢,基于C的SASSC以node-sass的形式包装,速度要快得多。事实上,我还没有能够使用node-sass复制这个看似简单的功能。

我按照这里给出的指示:http://benfrain.com/lightning-fast-sass-compiling-with-libsass-node-sass-and-grunt-sass/,它可以很好地设置node-sass with grunt来监视文件更改,但它似乎不支持观看和转换整个文件夹,不知道文件名。

我尝试过更改

sass: {
        dist: {
            files: {
                'css/styles.css': 'sass/styles.scss'
            }
        }
    }

对文件夹的值,以及许多其他内容,似乎没有任何效果。我承认我对grunt一无所知。有没有办法复制

compass watch *folder*

sass --watch *folder*:*folder*

我还没有尝试,或者这不存在?

3 个答案:

答案 0 :(得分:1)

Yaniv在正确的轨道上,但魔术似乎在“扩展”。以下是最终工作的内容:

    sass: {
        dist: {
            files: [{
                expand: true,
                src: ['sitecontent/**/*.{scss,sass}'],
                ext: '.css'
            }]
        }
    }

这会编译sitecontent文件夹和所有子文件夹中的所有sass文件,并将css放在sass文件旁边 - 它不会将它们编译到其他文件夹中。

答案 1 :(得分:1)

您需要将grunt-sass与grunt-contrib-watch结合使用以获得相同的效果。 ruby版本使用单独的gem来完成文件监视功能,因此你可以想象在C ++中跨平台是多么困难。

答案 2 :(得分:0)

您可以使用以下内容:

  sass: {
    dist: {
      files: [{
        src: ['*.scss'],
        dest: '../public',
        ext: '.css'
      }]
    }
  }

希望这就是你要找的东西