2015-01-01 14 views
5

Sto facendo lo sviluppo con cordova e yeoman + angularjs. Ho adottato una struttura di cartelle come segue (output del comando dir su Windows):esecuzione grunt ferma script batch

C:\code\cordova\pg-droid-app>dir 
Volume in drive C is OSDisk 
Volume Serial Number is 404D-C81B 

Directory of C:\code\cordova\pg-droid-app 

01/01/2015 03:46 PM <DIR>   . 
01/01/2015 03:46 PM <DIR>   .. 
01/01/2015 03:10 PM <DIR>   pgdroid 
01/01/2015 03:50 PM <DIR>   pgdroid-app-frontend 
01/01/2015 03:50 PM    241 showapp.bat 
       1 File(s)   241 bytes 
       4 Dir(s) 65,102,319,616 bytes free 

pgdroid-app-frontend è la cartella Ho eseguito yo angular (Yeoman generatore-angolare). pgdroid è la cartella in cui è installato il progetto cordova.

Grunt è configurato per copiare l'output del mio lavoro di sviluppo HTML nella cartella pgdroid\www. Funziona bene.

Ora per rendere le cose più facili ho creato il seguente script batch (showapp.bat):

echo === Running grunt... === 
cd pgdroid-app-frontend 
grunt --force 
echo === End Running grunt... === 
echo === Running cordova emulator === 
cd ..\pgdroid 
cordova run android 
cd .. 
echo === End Running cordova emulator === 

Il file viene inserito nella directory principale (vedere la prima uscita condiviso qui). L'esecuzione dello script si interrompe dopo l'esecuzione del grunt. Sto indovinando che questo è il comportamento del programma grunt. Forse non restituisce un codice di uscita riuscita che potrebbe essere la ragione per cui la sceneggiatura si interrompe bruscamente.

Qual è la soluzione alternativa?

+1

Non ci hai mostrato il contenuto di 'pgdroid-app-frontend'. 'Grunt' è un file batch o un file exe? Se è un batch, è necessario 'CALL Grunt ....." – Magoo

+0

'grunt' è un programma [nodejs] (http://nodejs.org). Fondamentalmente è un file che contiene il codice javascript che viene eseguito in l'ambiente di runtime di nodejs. Non sono sicuro che sia un exe o un batch in questo senso ... ma lasciatemi provare ad aggiungere un 'call' prima di esso ... – deostroll

+0

@Magoo che ha funzionato :) – deostroll

risposta

9

grunt è un po 'si comporta come un file .bat (finestre batch) o un programma di lotto. Quindi all'interno di un programma batch, se si desidera eseguire un altro programma batch, è necessario prefissare lo call prima di esso.

call grunt --force