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

Jac*_*kie 25 sass gruntjs grunt-contrib-sass

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

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

   }
}
Run Code Online (Sandbox Code Playgroud)

我们没有安装ruby,所以grunt-contrib-sass不是一个选项.我在Stylus中做同样的事情......

stylus: {
  compile : {
    files : {
      'css/g.css' : 'stylus/*.styl'
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

Jor*_*man 22

grunt-contrib-concat先跑步怎么样?

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

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

   }
}
Run Code Online (Sandbox Code Playgroud)

然后任务:

grunt.registerTask('sass', ['concat', 'sass']);
Run Code Online (Sandbox Code Playgroud)

编辑

@import好吗?我不是这方面的专家,但这就是我做的......

DIR /

main.scss
_nav.scss
_vars.scss
etc.
Run Code Online (Sandbox Code Playgroud)

main.scss

@import "nav";
@import "vars";
etc.
Run Code Online (Sandbox Code Playgroud)

  • 如果您有*.scss文件被模块分解,那么您不希望将它们全部包含在`main.scss`中,您只需要Grunt通过`src/**/*来查找它们.scss ` (9认同)
  • 我不确定为什么OP*不能*使用`@ import`,但对于看到这个的人来说......我很确定这通常是首选的方法. (7认同)
  • 如果您不想将所有样式表连接到一个文件中,则不需要使用导入。例如。您正在构建一个自定义 WordPress 应用程序,并且想要加载一张用于登录页面的样式表、一张用于管理员的样式表和一张用于前端的样式表。 (2认同)

Aar*_*lin 11

我只是想触及这一点,因为我有同样的问题,这实际上会起作用:

    sass: { // Task
       dist: {         
         files: [{
             // Set to true for recursive search
             expand: true,
             cwd: 'scss/',
             src: ['**/*.scss'],
             dest: 'css/',
             ext: '.css'
         }]
       }
    }
Run Code Online (Sandbox Code Playgroud)

让我知道事情的后续!