科尔多瓦8:无法从“ ios”安装,因为它不包含package.json文件

时间:2018-10-11 09:55:23

标签: cordova cordova-ios

我删除了ios平台,并尝试再次将其添加回去,但现在它说存在问题,需要package.json。

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

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

$ 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 }

6 个答案:

答案 0 :(得分:28)

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

希望有帮助。

答案 1 :(得分:4)

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

更新离子后我也遇到同样的问题 删除

的路径
  

/ platforms / android

ionic cordova platform add android

答案 4 :(得分:0)

如果在某个时候用cordova添加电容器,则电容器生成的[android | ios]目录会干扰cordova,因此我建议备份android目录并将其删除。这样可以解决问题。

import React, { useState, useEffect } from 'react'
import axios from 'axios';
import Individual from '../components/Individual';

export default function Home() {
    const [archive, setArchive] = useState([]);
    const getArchive = async () => {
        const response = await axios.get(`${process.env.REACT_APP_URL}/v1/archive`)
        setArchive(response.data.data.archive)
        console.log(response.data.data.archive)
    }
    useEffect(() => {
        getArchive()
    }, [])
    return (
        <div>
            {archive.forEach((iArchive) => (
                <Individual title={iArchive.title} link={iArchive.link} createdAt={iArchive.createdAt} />
            ))}
        </div>
    )
}

答案 5 :(得分:-1)

我遇到了同样的问题,原因是我试图在cordova中添加一个电子平台,但是在根目录下有一个名为electron of platform文件夹的文件夹,出于其他目的,我认为这存在一些冲突,为此,我将该文件夹重命名为electron2,然后cordova正常添加了平台。