2013-03-22 14 views
12

Sono nuovo per grugnire, ancora imparando, quindi sono arrivato a un problema molto strano. Quando eseguo l'attività "watch", la mia riga di comando si blocca, quindi in pratica non posso farci niente. Ricorda che l'attività è completata con successo. Questo è il mio comando di uscita di linea:blocco attività orologio da guardia grunt la riga di comando

C:\server\css-test>grunt w 
Running "watch" task 
Waiting...OK 
>> File "compass-examples-master\02\sass\screen.scss" changed. 

Running "compass" (compass) task 
unchanged compass-examples-master/02/sass/ie.scss 
unchanged compass-examples-master/02/sass/print.scss 
overwrite compass-examples-master/02/stylesheets/new/sass/screen.css 

Running "watch" task 

Completed in 1.496s at Fri Mar 22 2013 19:31:37 GMT+0100 (Central Europe Standard Time) - Waiting... 

Come potete vedere, tutto quello che faccio è correre "compass" compito, che completa con successo.

Il punto di inserimento continua a lampeggiare dopo la parte di testo Waiting..., ma l'input della tastiera non funziona.

La mia configurazione grugnito

module.exports = function (grunt) 
{ 

    grunt.initConfig({ 
     pkg: grunt.file.readJSON('package.json'), 
     compass: { 
      dist: { 
       options: { 
        sassDir: 'compass-examples-master/02', 
        cssDir: 'compass-examples-master/02/stylesheets/new', 
        imagesDir: 'compas-examples-master/02/images', 
        boring: false, 
        outputStyle: 'nested', 
        require: 'sass-media_query_combiner' 
       } 
      } 
     }, 
     watch: { 
      files: 'compass-examples-master/02/sass/*', 
      tasks: ['c'] 
     } 
    }); 

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


    grunt.registerTask('c', 'compass'); 
    grunt.registerTask('w', 'watch'); 

}; 

risposta

20

havn't orologio grugnito utilizzato, tuttavia credo che il problema è che si tratta di un processo in esecuzione continua, e per impostazione predefinita la riga di comando in genere eseguito un solo processo alla volta . Ci sono 3 soluzioni che puoi usare.

  1. Aprire un nuovo terminale. Puoi avere più aperture contemporaneamente, e questo ti permetterà di usare il secondo come terminale principale mentre l'orologio grunt occupa l'altro.
  2. Utilizzare il simbolo & nel comando. Questo inizierà il processo e ti restituirà immediatamente la riga di comando, permettendoti di usarlo per altre cose. Si può pensare ad esso eseguendo il comando in background. Il processo è ancora connesso alla finestra del terminale, quindi se chiudi la finestra, il processo terminerà.

    grugnito w &

  3. Usa (&) intorno al vostro comando. Questo verrà eseguito sullo sfondo come solo &, tuttavia il processo non verrà ucciso quando si chiude la finestra del terminale.

    (grugnito w &)

+0

Credo che questo risolva il tuo problema, ma se ho frainteso la tua domanda, mi scuso. –

+0

'&' non funziona. Tuttavia, l'apertura di un nuovo terminale funziona. C'è una documentazione su questo da qualche parte? Come sei arrivato con "" & "' e '(grunt w &)'? –

+0

Mi dispiace che il & n siano basati su * nix e in qualche modo non ho notato le finestre C:/implicanti. Questo collegamento può indirizzarti nella giusta direzione per replicare questo comportamento su Windows. http://www.tomshardware.com/forum/34598-45-windows-command-background-unix. Se guardi approssimativamente a metà della pagina viene menzionato un comando 'start' che a me sembra funzionerebbe, ma non ne sono sicuro. –

5

Per Windows Utilizzare

start grunt 

Questo porterà una finestra CMD che "guardare" in background e lasciare il git-bash o la finestra di cmd che stavi lavorando nello stesso modo in cui l'hai lasciata.

In altre parole, eseguirà l'attività in una finestra separata per te.

Volevo solo far sapere che questo ha funzionato secondo i commenti.

5

trovo più semplice per fermare solo il processo orologio premendo Ctrl e C allo stesso tempo. Quindi posso usare la riga di comando per fare cose poi eseguire nuovamente il grunt watch quando sono pronto per tornare al browser.

Problemi correlati