好吧,我看到这个站点上已经有很多与我的问题有关的问题,但是我也看到没有一种解决方案适用于我的具体情况,因此,我打开了这个问题,所以它不是重复的。
package.json
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"eject": "expo eject"
},
"dependencies": {
"@expo/vector-icons": "^9.0.0",
"expo": "^32.0.0",
"lodash.clonedeep": "^4.5.0",
"native-base": "^2.10.0",
"react": "16.5.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-32.0.0.tar.gz",
"react-native-credit-card-input": "https://github.com/itspauloroberto/react-native-credit-card-input.git",
"react-native-password-strength-meter": "https://github.com/itspauloroberto/react-native-password-strength-meter.git",
"react-native-responsive-screen": "^1.2.0",
"react-native-scalable-image": "^0.5.0",
"react-navigation": "^3.0.9",
"react-redux": "^6.0.0",
"redux": "^4.0.1",
"redux-form": "^8.1.0",
"redux-saga": "^0.16.2",
"url-join": "^4.0.0",
"vanilla-masker": "^1.2.0"
},
"devDependencies": {
"babel-preset-expo": "^5.0.0"
},
"private": true
}
我的问题是,当我尝试运行以下相同的命令expo start
或npm start
时。
我很难相信这是一个操作系统问题,因为上周我在另一个操作系统elementary-os
上使用了相同的项目,而我没有任何问题!
然后我在执行expo start
或npm start
时收到此错误:
Uncaught Error { [Error: EACCES: permission denied, open '/home/itspauloroberto/.expo/state.json.354451305']
errno: -13,
code: 'EACCES',
syscall: 'open',
path: '/home/itspauloroberto/.expo/state.json.354451305' }
nvm install 10.15.1
npm install expo-cli
expo init
创建一个新的expo react-native项目。expo start
运行它。首先,我确定这个项目/应用程序可以正常运行,因为上周我有另一个OS(elementaryOS),并且我在进行项目时没有任何问题,而且我有一个与之合作的团队也没问题。
node
和npm
以及expo-cli
。rm -rf node_modules
和npm install
。package.lock.json
和npm install
。nvm
节点版本管理器,(并且我正在使用它的atm)。chown myuser project-folder
授予用户访问该文件夹的权限(也在.expo文件夹和node_modules文件夹上尝试过)chmod 777 and 755 and 655
整个项目文件夹。expo start
前缀的npm start
,sudo
命令,但是sudo找不到expo
或npm
都找不到。git clone
对其进行克隆。此外,您也不会看到SELinux的参与:
ls -ld
drwxr-xr-x 2 itspauloroberto itspauloroberto 4096 2月20 14:54。
因此,即使我在许多网站上看到此错误,也都没有我的上下文,这是我提出的问题。
答案 0 :(得分:2)
主要原因是因为有一段时间,我使用sudo
安装了与expo相关的内容,然后expo在另一个目录中创建了属于root
用户的一些文件。不在我正在工作的项目文件夹中。
这是因为在expo的初始安装中,expo的初始文件显然是使用sudo
安装的,因为该目录home/itspauloroberto/.expo
中的文件以及该文件夹都由{{ 1}}(我使用root
命令对其进行了检查,并以la -ls
为所有者。)而不是我的用户root
,这是错误的主要来源。
itspauloroberto
目录。home/your_user/
删除.expo
文件夹(因为文件夹所有者是root用户,所以需要使用sudo)sudo rm -rf .expo
如果找到与某个目录或文件有关的任何其他错误,请导航至错误消息上的文件/目录并将其删除。因为它也应该属于expo start
用户。
答案 1 :(得分:0)
先卸载博览会。然后卸载npm并重新安装npm然后再博览会