2015-01-01 31 views
5

我正在用cordova和yeoman + angularjs進行開發。我已經採用的文件夾結構如下(dir命令的窗口上輸出):咕嚕執行停止批處理腳本

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是我已經運行yo angular的文件夾(自耕農發電機角)。 pgdroid是設置cordova項目的文件夾。

Grunt配置爲將我的HTML開發工作的輸出複製到pgdroid\www文件夾。它工作正常。

我們讓事情變得更容易,我創建了下面的批處理腳本(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 === 

的文件被放置在根目錄(見第一輸出這裏共享)。執行grunt後腳本執行停止。我猜這是咕嚕聲的程序行爲。它可能不會返回成功退出代碼,這可能是腳本突然停止的原因。

這是什麼解決方法?

+1

您沒有向我們展示'pgdroid-app-frontend'的內容。 'grunt'是批處理文件還是.exe?如果是批處理,那麼你需要'CALL Grunt .....「 – Magoo

+0

'grunt'是一個[nodejs](http://nodejs.org)程序。它基本上是一個包含JavaScript代碼的文件,它執行在nodejs運行時環境,我不確定它是一個exe文件還是一個批處理文件,但是讓我嘗試在它之前添加一個'call' ... – deostroll

+0

@Magoo that worked :) – deostroll

回答

9

grunt有點像.bat(windows批處理)文件或批處理程序。因此,在批處理程序中,如果要執行另一批處理程序,則必須在其前面加上前綴call

call grunt --force