Compass和Sass编译时间使用Grunt手表的速度非常慢 - 小文件只需25秒

时间:2015-08-30 07:43:12

标签: sass gruntjs compass-sass compass

我是Grunt,Compass和Sass的新手。每当我对.scss文件进行更改时,运行任务需要将近25秒。我一定做错了什么。这是我的设置:

我的scss部分是这样的:

_buttons.scss, _colors.scss, _typography.scss等等。这些是由_base.scss文件导入的。这反过来又与main.scss一起导入我的compass文件。

我的gruntfile看起来像这样:

module.exports = function( grunt ){     
    grunt.loadNpmTasks('grunt-contrib-uglify');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-compass');        

    grunt.initConfig({
        //UGLIFY
        uglify:{
            options: {
                beautify:true   
            },//options
            my_target: {
                files:{
                    'js/main.js': ['_/js/partials/*.js']
                }//files
            }//my target
        },//uglify

        //COMPASS
        compass: {
            dev:{
                options: {
                    config: 'config.rb'
                }//options
            }//development mode
        },//compass

        //WATCH
        watch:{
            options: {
                livereload:true,
                spawn: false
            },
            scripts: {  
                files: ['_/js/partials/*.js'],
                tasks:['uglify']
            },//scripts
            sass: {
                files: ['_/sass/**/*.scss'], 
                tasks: ['compass:dev']
            },//sass
            html: {
                files: ['*.html']
            },//html
        }//watch
    }),//init config
    grunt.registerTask('default', 'watch')
}//exports

我读过的其他问题建议将spawn设置为false(我认为默认情况下这是默认情况),但这没有任何区别。 uglify任务只需要一两秒钟。那么我的sass文件出了什么问题?

更新

如果我运行grunt -verbose,这就是输出:

enter image description here

看起来Grunt正在观看每个文件,而不仅仅是我指定的文件。即php目录。

1 个答案:

答案 0 :(得分:2)

我想,你应该检查grunt-sass(用于编译sass https://www.npmjs.com/package/grunt-sass的c ++库)和用于生成精灵的spritesmith(https://www.npmjs.com/package/grunt-spritesmith

我有同样的问题,当我在一个小项目上使用指南针时,编译样式需要3秒,而生成精灵需要7秒。