Cordova 8:无法从 "ios" 安装,因为它不包含 package.json 文件

Cordova 8: Could not install from "ios" as it does not contain a package.json file

我删除了我的 ios 平台并尝试重新添加它,但现在它说有问题并且需要 package.json。

如何修复 ios 平台,使其具有 package.json?

运行 8.1.2(也在 8.0 中尝试过)与 cordova-ios@4.5.4

$ cordova platform add ios
{ Error: npm: Command failed with exit code 1 Error output:
npm ERR! code ENOLOCAL
npm ERR! Could not install from "ios" as it does not contain a package.json file.

npm ERR! A complete log of this run can be found in:
npm ERR!     /Users/mikenelson/.npm/_logs/2018-10-11T09_47_23_544Z-debug.log
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-common/src/superspawn.js:169:23)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:877:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
stderr: 'npm ERR! code ENOLOCAL\nnpm ERR! Could not install from "ios" as it does not contain a package.json file.\n\nnpm ERR! A complete log of this run can be found in:\nnpm ERR!     /Users/mikenelson/.npm/_logs/2018-10-11T09_47_23_544Z-debug.log\n',
code: 1 }

更新

8 个月后我又做了同样的事情,但这次我在我的项目根目录中创建了一个名为 'android' 的文件夹,只是为了放入一些东西。所以我得到:

Could not install from "android" as it does not contain a package.json file

正如 Luigi Lopez 在评论中指出的那样,问题是您无法在项目根目录中创建名为 'ios' 或 'android' 的文件夹。它认为您要从本地文件夹安装平台。

我不确定情况是否相同,但我在 Ionic 4 项目中收到了相同的错误,对我有用的是删除项目根目录下的 ios/ 目录并重新 运行 命令: ionic cordova platform add ios

希望对您有所帮助。

我也遇到了同样的问题,似乎如果我们已经为特定平台构建了一个电容器,它就会抛出这个错误。对我来说,当我从项目的根目录中删除 android 电容器构建并重试时。它开始为我工作。

更新离子后我有同样的问题 删除

的路径

/platforms/android

ionic cordova platform add android

所以这让我沮丧了大约一个小时,最后想办法进入项目目录并删除名为“android”的文件夹,然后重新 运行 命令。它强制使用所有正确的文件再次安装 android。

我遇到了同样的问题,原因是我试图向 cordova 添加一个电子平台,但是平台文件夹中有一个名为 electron 的文件夹,就在根目录下,用于其他目的,我相信有有些冲突,为此我将这个文件夹重命名为 electron2 和 cordova 正常添加平台。

如果在某些时候我用 cordova 添加电容器 capacitor-generated [android|ios] 目录会干扰 cordova,我建议备份 android 目录和删除它。这将解决问题。

zip –r [android|ios].zip [android|ios]
rm -R [android|ios]
ionic cordova platform remove [android|ios]
ionic cordova platform add [android|ios] --save
unzip [android|ios].zip
rm [android|ios].zip #or add in the .gitignore [android|ios].zip