我最近更新了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命令执行此操作。
对于为什么会发生这种情况的任何帮助或建议都会有所帮助。
谢谢!
答案 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目录的存在识别了基本项目目录。新版本错误地查找包含以下三项的目录:
config.xml不应该在基本目录中,它位于www /下,这就是它失败的原因。
该脚本确实具有故障安全功能,即查找www / config.xml。但是,它的方式是继续遍历树,如果在任何时候它找到另一个www / config.xml,将认为这是项目目录的更好的候选者。
在您的情况下,我猜测您的根目录中有/www/config.xml,而PhoneGap错误地认为这是您的项目目录。