serve nodejs node grunt example clean node.js gruntjs grunt-contrib-watch

node.js - nodejs - node js task runner



gruñido lanzamiento "Recursive process.nextTick detectado" (6)

Acabo de corregir un error similar "Recursive process.nextTick detected" causando por comando: servidor de grunt

¿La solución? Use sudo grunt serve en su lugar

Estoy ejecutando Lion 10.9.2 con nodejs v0.10.26

Quiero configurar una compilación automatizada en archivos sass y una recarga en vivo con gruñido, nada complicado, pero ...

Cuando ejecuto grunt watch recibo el siguiente error

(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

aquí está el 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'' ]); };

y aquí está el paquete. 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" } }



Finalmente descubrí un problema similar que estaba teniendo con SASS. Estaba usando

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

El truco fue que a Grunt no parece gustarle la repetición en los nombres. Cuando cambio a

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

Todo funcionó como debería.


Solo tuve este problema. Se grunt.registerTask(''watch'', [ ''watch'']); eliminando grunt.registerTask(''watch'', [ ''watch'']);


Solución alternativa: revisa tu reloj para ver si hay un argumento de archivo vacío .

Aquí hay un extracto de mi gruntfile

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

En mi caso, podría recrear el error del póster original a pedido con el argumento vacío anterior.