Node.js Phonegap 3.4.0无法构建新项目和更新旧项目

Node.js Phonegap 3.4.0无法构建新项目和更新旧项目,node.js,cordova,command-line,npm,Node.js,Cordova,Command Line,Npm,我最近更新了phonegap、node和npm。我有一个以前用Phonegap版本3.3.0构建的现有项目。然后,我尝试使用phonegap platform update ios更新现有项目,但收到一个错误,指出“/platforms”目录不存在。 我不认为这有什么区别,但我也尝试使用cordova命令而不是phonegap命令,但我得到了与上面相同的错误。我甚至用phonegap create Test创建了一个全新的项目,并且我能够成功地构建一个项目,但是当我尝试运行/build时,我得到

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

我不认为这有什么区别,但我也尝试使用cordova命令而不是phonegap命令,但我得到了与上面相同的错误。我甚至用
phonegap create Test
创建了一个全新的项目,并且我能够成功地构建一个项目,但是当我尝试运行/build时,我得到了一个类似的错误:
error:/platforms不存在。请指定现有的父文件夹。[错误]/Users/mftcmbp1/.cordova/lib/ios/cordova/3.4.0/bin/create:Command失败,退出代码1


更奇怪的是,我能够使用cordova命令成功创建项目,构建ios和android平台,并模拟该项目,然而,我不能像更新之前那样使用phonegap命令来实现这一点。

任何关于为什么会发生这种情况的帮助或建议都会很有帮助。
谢谢

1-在构建之前,您需要将“cd”添加到项目中并首先添加平台

cd Test
2-然后添加平台

iOS

安卓

phonegap platform add android
phonegap build android
3-然后你可以建立你的项目

iOS

安卓

phonegap platform add android
phonegap build android

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

我在周末遇到了这个问题,您尝试过:

$ mkdir project_directory/platforms
正如我所记得的那样,这解决了这个问题


该错误发生在从github克隆项目时没有平台目录

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

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

快速修复方法是,在函数isRootDir中,将“config.xml”更改为“.cordova”,即:

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

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

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

  • 万维网/
  • config.xml
  • 平台/
config.xml不应该在基本目录中,它在www/下,这就是它失败的原因

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


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

当我收到所有这些错误时,我在项目目录中。一旦我在项目目录中,我尝试构建ios,PhoneGap成功地检测到ios SDK环境和错误,而cre出现以下错误的ios项目:
错误:/platforms不存在。请指定一个现有的父文件夹。
如果有帮助,命令失败,退出代码为1。您需要先为ios添加平台。phonegap platform add iosI仍会收到相同的错误“/platforms不存在…”。同样值得注意的是,上述命令用于cordova。使用phonegap命令,您只需执行
phonegap构建ios
,至少使用phonegap 3.3.0U可以在问题中逐步解释您是如何执行的吗?我的桌面上有一个名为“HRPO”的现有项目,它是使用Phonegap 3.3.0构建的。我将cd刻录到该目录,并尝试使用命令
cordova platform update ios
,就像文档中解释的那样。然后,我收到一个错误,声明“没有这样的文件或目录/平台”。从Phonegap 3.0.0开始,您应该能够使用这些命令进行更新,而不是创建一个全新的项目并转储www cont从旧项目到新项目。也许这就是我必须要做的,因为更新我可以尝试,但是有一个平台目录,其中包含项目,在我的案例中没有任何改变(phonegap@3.4.0)