Grunt执行停止批处理脚本

7
我正在使用cordova和yeoman + angularjs进行开发。我采用了以下目录结构(在Windows上运行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是我运行yeoman generator-angular(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后,脚本执行停止。我猜想这是grunt程序的行为。可能是因为它没有返回成功的退出代码,这就是脚本突然停止的原因。有什么解决方法吗?

1
你还没有展示pgdroid-app-frontend的内容。grunt是一个批处理文件还是.exe文件?如果它是一个批处理文件,那么你需要使用CALL Grunt ...... - Magoo
“Grunt” 是一个 nodejs 程序。它基本上是一个包含 JavaScript 代码的文件,可以在 nodejs 运行时环境中执行。我不确定它是否是一个可执行文件或批处理文件...但让我尝试在它前面添加一个 “call” 命令... - deostroll
@Magoo,那个有效 :) - deostroll
1个回答

13

grunt有点像一个.bat(Windows批处理)文件或一个批处理程序。因此,在批处理程序内,如果您想要执行另一个批处理程序,您必须在其前面加上call

call grunt --force

它类似于Yarn。 - Long Rainbow

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接