26

我正在尝试将多个 .scss 文件编译成一个 CSS 文件。这实际上有效,但只抓取第一个文件......

sass: {                                 // Task
   dist: {     
     files: {
       'css/test.css':'sass/*.scss'
     }

   }
}

我们没有安装 ruby​​,所以 grunt-contrib-sass 不是一个选项。我像这样在手写笔中做同样的事情......

stylus: {
  compile : {
    files : {
      'css/g.css' : 'stylus/*.styl'
    }
  }
}
4

5 回答 5

24

先跑怎么grunt-contrib-concat办?

concat: {
       dist: {
         src: [
           'sass/*.scss',
         ],
         dest: 'sass/build.scss',
       }
     },

sass: {                                 // Task
   dist: {     
     files: {
       'css/test.css':'sass/build.scss'
     }

   }
}

然后任务:

grunt.registerTask('sass', ['concat', 'sass']);

编辑

你怎么用@import?我不是具体的专家,但这是我所做的......

目录/

main.scss
_nav.scss
_vars.scss
etc.

主文件

@import "nav";
@import "vars";
etc.
于 2014-01-15T22:10:41.220 回答
15

我只是想谈谈这个,因为我有同样的问题,这实际上会起作用:

    sass: { // Task
       dist: {         
         files: [{
             // Set to true for recursive search
             expand: true,
             cwd: 'scss/',
             src: ['**/*.scss'],
             dest: 'css/',
             ext: '.css'
         }]
       }
    }

让我知道事情的后续!

于 2017-05-03T21:07:13.287 回答
2

您可以使用“grunt-sass-globbing”。它将生成一个 SCSS 文件,其中包含您在 Gruntfile 中指定的所有导入。 https://www.npmjs.com/package/grunt-sass-globbing/

使用此选项,您可以保留源映射,而无需连接 SCSS 文件。

第一步:创建导入文件

sass_globbing: {
    your_target: {
        options: {
            useSingleQuotes: false,
            signature: '// Hello, World!'
        },
        files: {
            'imports.scss': 'partials/**/*.scss',
        }
    }
}

第 2 步:编译导入文件

sass: {
    options: {
        sourceMap: true
    },
    develop: {
        files: {
            'main.css': 'imports.scss'
        }
    }
}
于 2015-09-29T10:23:06.887 回答
1

如果你不想使用 concat,你可以指定目录中的所有文件。查看此示例: https ://github.com/gruntjs/grunt-contrib-sass#compile-files-in-a-directory

于 2015-12-23T04:06:13.997 回答
0

这很简单。

假设你有这个包含 2 个 scss 文件的结构:

   scss/
       core/file.scss
       templates/file2.scss
       main.scss

所以你需要做的是:在你的根 scss 文件夹中创建一个名为main.scss的文件并导入你所有的 scss 文件:

例如: main.scss 将具有:

@import "core/file.scss"
@import "templates/file2.scss"

现在使用 grunt-contrib-sass 并调用main.scss文件:

完毕 :)

//Sass ===============================
            var sass;
            config.sass = sass = {};

                //production
                    sass.dist = {
                        options: { style: "compressed"}
                        , files: {
                            "public/stylesheets/myapp.production.css" : "sass/main.scss"
                        }
                    };

                //development env.
                    sass.dev = {
                    options: { style: "expanded", lineNumber: true}
                    , files: {
                        "public/stylesheets/myapp.development.css" : "sass/main.scss"
                    }
                };
于 2016-05-06T08:55:26.350 回答