grunt-contrib-sass任务开始运行但没有完成

时间:2014-06-02 19:35:10

标签: javascript node.js gruntjs grunt-contrib-watch

我正在尝试设置Grunt,以便在使用Express的简单项目中进行更改(使用grunt-contrib-watch)时编译sass。我的gruntfile有一个“服务器”任务,我用它来运行我的应用程序;这个任务编译sass并运行应用程序。

启动服务器时sass的初始编译工作正常。但是,检测到应用程序运行时的更改,并且任务似乎已启动但似乎永远不会完成。 以下是我的输出的副本

Running "sass:dist" (sass) task
File public/stylesheets/main.css created.

Running "concurrent:main" (concurrent) task
Running "watch" task
Waiting...Running "nodemon:main" (nodemon) task
2 Jun 19:55:25 - [nodemon] v0.7.10
2 Jun 19:55:25 - [nodemon] to restart at any time, enter `rs`
2 Jun 19:55:25 - [nodemon] watching: C:\Development\grunt-test
2 Jun 19:55:25 - [nodemon] starting `node app.js`
OK
>> File "assets\stylesheets\main.scss" changed.

Running "sass:dist" (sass) task

sass任务永远不会完成。只有当我运行“服务器”任务时才会发生这种情况,如果我运行“监视”任务它正常工作。

这是我的 Gruntfile.js ,它可以重现这个问题:

module.exports = function (grunt) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        sass: {
            dist: {
                options: {
                    style: 'compressed'
                },
                files: [{
                    expand: true,
                    cwd: 'assets/stylesheets',
                    src: ['*.scss'],
                    dest: 'public/stylesheets',
                    ext: '.css'
                }]
            }
        },

        nodemon: {
            main: {}
        },

        watch: {
            scss: {
                files: 'assets/stylesheets/**/*',
                tasks: ['compile']
            }
        },

        concurrent: {
            main: {
                tasks: ['nodemon', 'watch'],
                options: {
                    logConcurrentOutput: true
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-nodemon');
    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-concurrent');
    grunt.loadNpmTasks('grunt-contrib-sass');

    grunt.registerTask('compile', ['sass']);
    grunt.registerTask('server', ['compile', 'concurrent']);
};

这是我的 package.json 文件:

{
  "name": "grunt-test",
  "description": "grunt-test",
  "version": "0.0.1",
  "private": true,
  "main": "app.js",
  "dependencies": {
    "express": "4.x",
    "debug": "0.8.1"
  },
  "devDependencies": {
    "grunt": "^0.4.5",
    "grunt-contrib-watch": "^0.5.3",
    "grunt-nodemon": "^0.1.2",
    "grunt-concurrent": "^0.4.3",
    "grunt-contrib-sass": "^0.7.3"
  }
}

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我知道这是一个旧的,但我遇到了同样的错误。

我为grunt-sass换掉了grunt-contrib-sass,它本来应该有效。