gruntjs - uglify - grunt watch folder
grunt-contrib-watch que causa el tamaño máximo de pila de llamadas excedido (2)
Cuando ejecuto la tarea de limpieza (grunt clean), todo funciona como se esperaba pero cuando ejecuto la tarea watch (prueba de ronco), aparece el siguiente error:
util.js:35
var str = String(f).replace(formatRegExp, function(x) {
^
RangeError: Maximum call stack size exceeded
Aquí está mi gruntfile
module.exports = (grunt) ->
grunt.initConfig
pkg: grunt.file.readJSON(''package.json'')
clean: [''tmpDir/'']
watch:
options:
spawn: false
src:
tasks: [''clean'']
files: [
src: ''client/assets/strings/en/str.coffee''
]
# plugins
grunt.loadNpmTasks(''grunt-contrib-clean'')
grunt.loadNpmTasks(''grunt-contrib-watch'')
# tasks
grunt.registerTask(''test'', [''watch''])
Aquí está mi archivo package.json:
{
"author": "Your Name <Your Email>",
"name": "app-name",
"description": "Application description",
"version": "0.0.1",
"homepage": "",
"repository": {
"type": "git",
"url": ""
},
"engines": {
"node": "~0.10.28"
},
"scripts": {
"start": "muffin server"
},
"dependencies": {
"coffee-script": "~1.1.2",
"express": "~3.0.6",
"chai": "~1.4.2",
"underscore": "~1.4.3",
"wd": "0.0.27"
},
"devDependencies": {
"express": "~3.0.6",
"grunt": "^0.4.5",
"grunt-contrib-coffee": "^0.11.1",
"grunt-contrib-copy": "^0.6.0",
"grunt-contrib-less": "^0.11.4",
"grunt-contrib-watch": "^0.6.1",
"requirejs": "~2.0.1"
}
}
La salida cuando corro con --verbose es la siguiente: Note: replaced base path with ***
Initializing
Command-line options: --verbose
Reading "gruntfile.coffee" Gruntfile...OK
Registering Gruntfile tasks.
Reading package.json...OK
Parsing package.json...OK
Initializing config...OK
Registering "grunt-contrib-clean" local Npm module tasks.
Reading /***/node_modules/grunt-contrib-clean/package.json...OK
Parsing /***/node_modules/grunt-contrib-clean/package.json...OK
Loading "clean.js" tasks...OK
+ clean
Registering "grunt-contrib-watch" local Npm module tasks.
Reading /***/node_modules/grunt-contrib-watch/package.json...OK
Parsing /***/node_modules/grunt-contrib-watch/package.json...OK
Loading "watch.js" tasks...OK
+ watch
Loading "gruntfile.coffee" tasks...OK
+ test
Running tasks: test
Running "test" task
Running "watch" task
Waiting...
Verifying property watch exists in config...OK
Verifying property watch.src.files exists in config...OK
Warning: Object #<Object> has no method ''indexOf''
Running "watch" task
Waiting...
Verifying property watch exists in config...OK
Verifying property watch.src.files exists in config...OK
Warning: Object #<Object> has no method ''indexOf''
... many of these
Running "watch" task
Waiting...
Verifying property watch exists in config...OK
Verifying property watch.src.files exists in config...OK
Warning: Object #<Object> has no method ''indexOf''
(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
(node) warning: Recursive process.nextTick detected. This will break in the next version of node. Please use setImmediate for recursive deferral.
... many of these
(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
La propiedad de files
toma una matriz de cadenas de patrones de archivos. Has suministrado un objeto que no sabe cómo interpretar.
Cambia esto:
files: [
src: ''client/assets/strings/en/str.coffee''
]
A esto:
files: [
''client/assets/strings/en/str.coffee''
]
Finalmente descubrí un problema similar que estaba teniendo con el hechizo. Estaba usando
grunt.registerTask (''hechizo'', [''hechizo'']); El truco fue que a Grunt no parece gustarle la repetición en los nombres. Cuando cambio a
grunt.registerTask (''spellCheck'', [''hechizo'']); Todo funcionó como debería.
puede esto te ayuda