首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Grunt : SCSS文件未编译

Grunt : SCSS文件未编译
EN

Stack Overflow用户
提问于 2017-07-18 13:58:15
回答 1查看 263关注 0票数 0

我试着用咕噜编译scss文件。使用这些模块

  1. grunt-contrib-sass
  2. grunt-contrib-watch
  3. grunt-contrib-concat

尽管如此,我所有的常规css文件都被编译到我的主css文件中,但是我的.scss文件中没有一个被编译。我尝试在命令行中手动编译我的文件,它确实很好(sass styles.scss:style.css),所以它与我的.scss或ruby无关。我做错了什么?

这就是我的Gruntfile.js的样子

代码语言:javascript
复制
require('time-grunt')(grunt);

var jsFileList = [
    'bower_components/slick-carousel/slick/slick.js',
    'sources/js/dom_ready.js'
];

var cssFileList = [
    'bower_components/bootstrap/dist/css/bootstrap.css',
    'bower_components/slick-carousel/slick/slick.css',
    'sources/sass/styles.scss',
    'sources/sass/responsive.scss',
];

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    sass: {
        dist: {
            files: {
                'assets/css/styles.css': cssFileList
            }
        }
    },
    concat: {
        options: {
            separator: ';'
        },
        dist: {
            src: jsFileList,
            dest: 'assets/js/script.js'
        }
    },
    watch: {
        css: {
            files: cssFileList,
            tasks: ['sass'],
        },
        js: {
            files: jsFileList,
            tasks: ['concat']
        }
    }
});

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

grunt.loadNpmTasks('grunt-contrib-sass');
grunt.loadNpmTasks('grunt-contrib-watch');
grunt.loadNpmTasks('grunt-contrib-concat');
EN

回答 1

Stack Overflow用户

发布于 2017-07-18 18:16:18

我找到了一种用凹槽来做的方法。

首先要做的是将所有的scss和css合并到一个更大的scss文件中(为了方便concat.scss)。

然后可以使用sass任务生成scss文件。

这就是您的Gruntfile.js的外观。

代码语言:javascript
复制
var jsFileList = [
    ...
];

var cssFileList = [
    ...
];

grunt.initConfig({
    pkg: grunt.file.readJSON('package.json'),
    concat: {
        options: {
            separator: ';'
        },
        js: {
            src: cssFileList,
            dest: 'sources/sass/generated/concat.scss'
        },
        css: {
            src: jsFileList,
            dest: 'assets/js/script.js'
        }
    },
    sass: {
        dist: {
            options: {
                noCache : true,
                style: 'compressed',
                sourcemap: "none"
            },
            files:{
                'assets/css/styles.css' : 'sources/sass/generated/concat.scss'
            }
        }
    },
    watch: {
        css: {
            files: cssFileList,
            tasks: ['concat','sass']
        },
        js: {
            files: jsFileList,
            tasks: ['concat']
        }
    }
});

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

您的文件结构应该如下所示

代码语言:javascript
复制
/root
    /bower_components
        ...
    /assets
        /css
            styles.css
        /js
            script.js
    /sources
        js
            ...
        sass
            /generated
                concat.scss
            /inc
                ...
            /main
                ...
                styles.scss
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45168952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档