хрюкающий бросок " рекурсивный процесс.nextTick обнаружен"


Я запускаю Lion 10.9.2 с nodejs v0.10. 26

Я хочу настроить автоматическую компиляцию на файлы sass и живую перезагрузку с grunt, ничего сложного, но...

при работе grunt watch Я получаю следующую ошибку

(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.

util.js:35
  var str = String(f).replace(formatRegExp, function(x) {
                      ^
RangeError: Maximum call stack size exceeded

вот Gruntfile.js

module.exports = function(grunt) {

    // Project configuration.
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),

        sass: {
            dist: {
                files: {
                    'assets/css/styles.css': 'assets/sass/styles.scss'
                }
            }
        },
        watch: {
            all: {
                files: 'index.html', // Change this if you are not watching index.html
                options: {
                    livereload: true  // Set livereload to trigger a reload upon change
                }
            },
            css: {
                files:  [ 'assets/sass/**/*.scss' ],
                tasks:  [ 'sass' ],
                options: {
                    spawn: false
                }
            },
            options: {
                livereload: true // Set livereload to trigger a reload upon change
            }
        }

    });

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

    grunt.registerTask('watch', [ 'watch']);

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

};

и вот этот пакет.json

{
  "name": "application",
  "version": "0.0.1",
  "private": true,
  "devDependencies": {
    "grunt": "~0.4.2",
    "grunt-contrib-watch": "~0.5.3",
    "grunt-contrib-sass": "~0.7.3"
  }
}
6 88

6 ответов:

Я, наконец, понял, аналогичная проблема у меня была с Сасс. Я использовал

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

трюк был в том, что хрюканье, похоже, не нравится повторение имен. Когда я переключаюсь на

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

все работало как надо.

просто была эта проблема. Разрешил его, удалив grunt.registerTask('watch', [ 'watch']);

Я только что исправил аналогичную ошибку " рекурсивный процесс.nextTick detected " вызывается командой: grunt server

решение? Использовать sudo хрюкать вместо того, чтобы служить

вы можете попробовать этот, он исправил проблему для меня, работая с Yeoman 1.3.3 и Ubuntu 14.04 Grunt watch error-ожидание...Фатальная ошибка: смотреть ENOSPC

альтернативное решение: проверьте ваши часы для пустого аргумента файла.

вот отрывок из моего gruntfile

watch: {
  all: {
    options:{
      livereload: true
    },
    files: ['src/scss/*.scss', 'src/foo.html',, 'src/bar.html'],
    tasks: ['default']
  }
}

в моем случае, я мог бы воссоздать ошибку оригинальный плакат по требованию с пустым аргументом.

Я получал ошибку даже при попытке установить grunt. Запуск npm dedupe решил мою проблему, как ответил Здесь:Grunt watch error-ожидание...Фатальная ошибка: смотреть ENOSPC