我删除了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 }
答案 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正常添加了平台。