Phonegap 3.4.0无法构建新项目并更新旧项目

时间:2014-03-09 21:50:21

标签: node.js cordova command-line npm

我最近更新了phonegap,node和npm。我有一个我之前使用Phonegap版本3.3.0构建的现有项目。然后,我尝试使用phonegap platform update ios更新现有项目,并收到错误消息,指出'/ platforms'目录不存在。

我认为它没有任何区别,但我也尝试使用cordova命令而不是phonegap命令,但我得到的错误与上面相同。我甚至用phonegap create Test创建了一个全新的项目,我能够成功构建项目,但是当我尝试运行/构建时,我得到了类似的错误:Error: /platforms does not exist. Please specify an existing parent folder. [error] /Users/mftcmbp1/.cordova/lib/ios/cordova/3.4.0/bin/create: Command failed with exit code 1

更奇怪的是,我能够使用cordova命令成功创建项目,构建ios和android平台,并模拟项目,但在更新之前我无法使用phonegap命令执行此操作。
对于为什么会发生这种情况的任何帮助或建议都会有所帮助。 谢谢!

4 个答案:

答案 0 :(得分:3)

不确定Phonegap 3.4.0是否存在错误,但我通过卸载最新的Phonegap版本并安装Phonegap版本3.3.0-0.19.4解决了我的问题。

答案 1 :(得分:1)

1-你需要'cd'到你的项目并在构建之前先添加平台

cd Test

2-然后添加平台

的iOS

phonegap platform add ios

机器人

phonegap platform add android

3-然后你可以建立你的项目

的iOS

phonegap build ios

机器人

phonegap build android

答案 2 :(得分:1)

周末我碰到了这个,你试过了吗?

$ mkdir project_directory/platforms

我记得它,这解决了这个问题的修补程序。

从没有platform目录的github克隆项目后发生错误。

答案 3 :(得分:0)

我遇到了同样的问题,在更新脚本中看起来像是一个错误,特别是这个文件:

node_modules/phonegap/node_modules/cordova/src/util.js

快速解决方法是在函数isRootDir中更改" config.xml" to" .cordova",即:

- if (fs.existsSync(path.join(dir, 'config.xml'))) {
+ if (fs.existsSync(path.join(dir, '.cordova'))) {

旧版本通过.cordova目录的存在识别了基本项目目录。新版本错误地查找包含以下三项的目录:

  • WWW /
  • config.xml中
  • 平台/

config.xml不应该在基本目录中,它位于www /下,这就是它失败的原因。

该脚本确实具有故障安全功能,即查找www / config.xml。但是,它的方式是继续遍历树,如果在任何时候它找到另一个www / config.xml,将认为这是项目目录的更好的候选者。

在您的情况下,我猜测您的根目录中有/www/config.xml,而PhoneGap错误地认为这是您的项目目录。