2014-10-07 13 views
5

Ho problemi a configurare Grunt per guardare i miei file di progetto, ricostruire e aggiornare una pagina ospitata in un server di connessione. Se eseguo una delle attività di compilazione e quindi 'watch' come parte di un'attività combinata, quindi 'watch' sembra bloccarsi in un ciclo, stampando all'infinito il messaggio.Grunt Guarda ripetutamente "Avviso: deve fornire il modello"

Running "watch" task 
Waiting... 
Warning: must provide pattern 

Se invece ho appena eseguito $ grunt watch, che sarà lieto di guardare i miei file sorgente e compilare/costruire a seconda dei casi.

penso che le configurazioni di attività rilevanti sono questi:

watch: { 
    html: { 
    files: [ '<%= site.partials %>', '<%= site.layouts %>', '<%= site.pages %>' ], 
    tasks: [ 'html' ] 
    }, 
    sass: { 
    files: [ '<%= site.src %>sass/*.scss' ], 
    tasks: [ 'styles' ] 
    } 
}, 

// development server 
connect: { 
    options: { 
    port: 8080, 
    livereload: 35729, 
    hostname: 'localhost', 
    }, 
    dev: { 
    options: { 
     directory: 'build', 
    } 
    } 
}, 

e il compito definizioni:

grunt.registerTask('build', [ 'styles', 'html', ]); 
grunt.registerTask('default', [ 'build','connect:dev', 'watch' ]); 

I 'styles' e 'html' compiti Run grugnito-sass e assemblare. Come indicato sopra, l'esecuzione di una di queste attività o anche di 'watch' produce i risultati attesi. Questo suggerisce che il mio oggetto di configurazione ha site.partials, site.dest ecc definito correttamente. Il problema si verifica solo quando eseguo un'attività e quindi 'watch', come nell'attività predefinita.

+0

Sospetto che il problema sia nei modelli che fanno riferimento all'oggetto 'site'. Tuttavia, senza vedere quella parte della tua chiamata a 'grunt.initConfig', non posso davvero dirlo. So che questa domanda è vecchia ora, ma puoi pubblicare il tuo intero Gruntfile o, se hai risolto il problema, postare la tua risposta? – matty

risposta

-1

connect: dev è il problema. Rimuovilo e dovrebbe funzionare bene.

+0

'grunt-contrib-connect' è un multi-task e dovrebbe essere in grado di gestire più target contemporaneamente. La loro documentazione suggerisce addirittura numerosi esempi come questo. Perché un semplice obiettivo con una sola opzione (un'opzione di connessione necessaria) causa un problema? –

+0

Senza ulteriori spiegazioni, questo commento è casuale, forse creato da un Jean-bot. Lo scopo della risposta è informare sia il poster originale che altri lettori. Perché 'connect: dev' è un problema? Sospetto che non lo sia. – matty

13

Ho appena riscontrato un problema simile quando stavo modificando il mio Gruntfile e lasciato un campo (che avrebbe dovuto avere un modello di file) vuoto.

Controlla il tuo Gruntfile per un campo di file vuoto.

Nel mio esempio specifico:

wiredep: { 
    options: { 
     overrides: { 
      "jquery-ui": { 
       "main": [ 
       "jquery-ui.js", 
       "themes/base/jquery-ui.css", 
       "" 
       ] 
      } 
     } 
    } 
} 

Annotare la stringa vuota sopra. Questo ha generato un errore molto simile al tuo. Sembra che Grunt non ti dica dove l'errore è, purtroppo, l'errore è. Dovrai semplicemente scansionare manualmente il tuo Gruntfile per trovare l'errore.

+0

Grazie. Ho avuto lo stesso errore a causa del tuo stesso problema. –

+0

Grunt è davvero inutile per farti sapere dove si trova l'errore, mi ci sono voluti anni per rintracciarlo, ma era esattamente questo. –

+1

In questo contesto una stringa come '" <% = cfg.foo%> "' è anche vuota quando non c'è 'pippo' in' cfg'. Questo è il problema che ho avuto. – JonnyJD

Problemi correlati