Phonegap安装错误(npm)

12
我已经搜索了两天,试图在Windows 8.1系统上设置Phonegap却一直没有成功的解决方案。
每当我尝试通过npm安装Phonegap时,都会出现一个错误,我认为这与Cordova(-lib)有关。
要安装Phonegap,我必须在我的系统上安装Node.js(v0.10.28)。之后,按照Phonegap网站上的说明,我打开了Windows Powershell并输入了以下命令:
npm install -g phonegap

输出:(这是错误信息的唯一部分)

error notarget No compatible version found: cordova-lib@'lorinbeer/cordova-lib.git#configparser_module'
error notarget Valid install targets:
error notarget ["0.21.2","0.21.3"]
error notarget
error notarget This is most likely not a problem with npm itself.
error notarget In most cases you or one of your dependencies are requesting
error notarget a package version that doesn't exist.

我也尝试过通过npm安装Cordova,然后再安装Phonegap,但这并没有解决问题。以管理员权限运行Powershell也没有帮助,并尝试了其他人解决Phonegap设置问题的方法,但都没有起作用。 我真的希望有人能在这里帮助我。提前致谢。

今天我也遇到了同样的问题。 - Fiambre
问题在于 Github 上的 cordova-lib 版本,"version": "0.21.4-dev" https://github.com/lorinbeer/cordova-lib/blob/master/cordova-lib/package.json - Fiambre
这个问题可能已经被修复了:https://github.com/lorinbeer/cordova-lib/releases/tag/pg.3.5.0 - dylants
@dylants,确实,我认为我们应该等一下,直到他们应用了3.5.0支持。感谢你的发现。 - ihsan
5个回答

10

下载旧版本。我认为新版本有问题。

npm install -g phonegap@3.4

我尝试了这个方法,对我有效。


2
这对我有用,接受的答案看起来对我来说太复杂了。 - Dean Meehan
安装Phonegap 3.4对我也起作用。但在此之前,我必须运行“npm cache clean”。 - Nafeez Abrar
这对我也起作用了,但之后如果我尝试运行:phonegap create my_app,它会显示一个错误,缺少库com.phonegap.helloworld/www/3.4.0。 - coder

6
我昨天遇到了同样的问题。如果你查看npm-debug.log,你会注意到当npm尝试访问cordova-lib git存储库url时出现了权限问题(“Permission denied”)。实际上,cordova-lib是phonegap的一个依赖项。所以,它无法安装它,我认为这就是你会得到那个错误的原因。
所以,我尝试了这个:先安装cordova-lib,然后再安装Phonegap。然而,它仍然不起作用;npm似乎没有检查cordova-lib是否已安装就试图安装它。 此时,我能做的就是更改从中检索cordova-lib的存储库。以下是NPM安装语法:
npm install <tarball file>
npm install <tarball url>
npm install <folder>
npm install <pkg>
npm install <pkg>@<tag>
npm install <pkg>@<version>
npm install <pkg>@<version range>

这意味着我可以从tar.gz文件安装。太好了!因此,我只需访问此页面https://www.npmjs.org/package/phonegap以检查phonegap存储库并执行以下步骤:
  1. Download the zip of phonegap-cli repo (https://github.com/phonegap/phonegap-cli/archive/master.zip)
  2. Unzip it
  3. Open the package.json file and find the cordova-lib entry in dependencies (line 32)
  4. Change the value to 0.21.3 which is the last version.
  5. Recreate an archive of the folder to the tar.gz format
  6. Open your CLI and run this command:

    npm install -g path/to/archive/phonegap-cli-master.tar.gz
    

现在应该可以工作了。

希望有所帮助!


非常感谢,现在它可以工作了!因此,您首先必须执行“npm install -g cordova-lib”,然后将package.json中的行重命名为以下内容:“cordova-lib”:“0.21.3”, - ihsan
cordova lib 0.21.3 不兼容 phonegap,请尝试安装 phonegap 版本 3.5.0-0.21.3。 - Lorenzo

4
今天我在 Mac 上也遇到了类似的问题,即使 Lorenzo 说一切都应该没问题。只需运行以下命令即可解决问题:
sudo npm install -g phonegap

我遇到了很多这样的错误:

error: file ./objects/pack/pack-48c0ff4147fb7e8922546c4a857b98a1cb48e01f.pack is far too short to be a packfile

我结合了Lorenzo和Arpan Shah的解决方案:
sudo npm install -g phonegap@3.4
sudo npm cache clean
sudo npm update -g phone gap

...然后神奇地就好使了。


2

问题

我们发布时依赖于 cordova-lib 的一个分支。当有大量请求时(我想),这个分支似乎无法使用。总之,它不可靠。 将依赖项更改为0.21.3会导致命令失败,但允许安装。

解决方案

  1. 将 'cordova-lib' 依赖更新为 npm 发布的版本 '0.21.3' **注意,这将允许安装,但其他 phonegap 命令将失败

  2. 等待约20分钟,然后 npm update -g phonegap 测试更新以解决此问题

稍后将进行进一步更新

更新 我们已推出版本 3.5.0-0.20.3 ,应该解决此问题。

$ npm update -g phonegap

如果那个方法不起作用,请尝试

$ npm cache clean

并重新安装PhoneGap


1
我也遇到了同样的问题。我不得不安装旧版本 npm install -g phonegap@3.4 - tmarois

1
我尝试了以上命令npm cache clear并重新安装phoegap。它下载了所有的库,但没有命令行脚本(phonegap命令仍然是3.4版本)。我发现更好的方法是使用命令:npm install -g cordova(v 3.5)!

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