无法在 expo-react-native 应用上 运行 'expo start',权限问题
Can't run 'expo start' on a expo-react-native app, permission problem
Well, i see that already have many questions related to my problem on this site, but i also see that NONE of the solutions work for my specific case, because of that, i am opening that question, so it is not a duplicate.
Context(环境)
- Linux 薄荷 19.1 肉桂
- 世博会 v32
- React-Native-Application
- GitHub Private Repository(从我克隆应用程序的地方)
- 节点最新 LTS (v10.15.1)
- NPM v6.4.1
- /\ 都使用 NVM(节点版本管理器)
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
是相同的。
我几乎不相信这是一个 OS 问题 因为上周我在另一个 os 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' }
如何重现:
- Install/Use OS Linux 薄荷 19.1 肉桂色。
- 安装nvm(节点版本管理器)
- 使用
nvm install 10.15.1
安装 npm 和节点
- 使用
npm install expo-cli
安装 expo-cli
- 使用
expo init
创建一个新的 expo react-native 项目。
- 尝试 运行 使用
expo start
。
我试过的
首先,我确定这个 project/application 运行 没问题,因为我上周有另一个 OS (初级OS),我是在这个项目上工作没有问题,我也有一个团队在这个项目上工作也没有问题。
- 我尝试重新安装
node
和 npm
以及 expo-cli
。
- 我试过
rm -rf node_modules
和npm install
。
- 我再次尝试删除
package.lock.json
和 npm install
。
- 我试图为 npm 全局安装设置一个全局目录,如前所述
- 我尝试安装
nvm
节点版本管理器,(我正在使用它 atm)。
- 我尝试
chown myuser project-folder
授予我的用户访问该文件夹的权限(也在 .expo 文件夹和 node_modules 文件夹上尝试过)
- 我试图
chmod 777 and 755 and 655
整个项目文件夹。
- 我尝试 运行 带有
sudo
前缀的 expo start
、npm start
命令,但 sudo 找不到 expo
或两者都找不到 npm
。
- 我试图删除 repos 并再次使用
git clone
克隆它。
- 还有很多很多其他的事情。 (我也做了猎物)
也没有 SELinux 参与,如下所示:
ls -ld
drwxr-xr-x 2 itspauloroberto itspauloroberto 4096 Feb 20 14:54 .
正因为如此,我提出了这个问题,即使我在许多网站上看到这个错误 none 也有我的背景。
我找到问题了!
主要是因为我在某个时候使用sudo
安装了一些与expo相关的东西,然后expo创建了一些属于root
用户的文件另一个不在我正在工作的项目文件夹中的目录。
所以这是因为 expo 在最初安装 expo 时使用的初始文件显然是使用 sudo
安装的,因为此目录中的文件:home/itspauloroberto/.expo
以及该文件夹的所有者root
(我使用 la -ls
命令检查它并看到 root
作为所有者。)而不是我的用户 itspauloroberto
这是错误的主要来源。
要消除此错误,请执行以下步骤:
- 导航到
home/your_user/
目录。
- 使用
sudo rm -rf .expo
删除 .expo
文件夹(需要 sudo,因为文件夹所有者是 root)
- 运行 再次使用
expo start
展示
如果您发现与某些目录或文件相关的任何其他错误,请导航至错误消息中的 file/directory 并将其删除。因为它也应该属于 root
用户。
先卸载 expo。然后卸载 npm 并重新安装 npm 然后 expo
我遇到这个问题是因为我一直在本地使用 cmd
,在 Ubuntu WSL2 子系统中使用 bash。
我一定是从 ubuntu 终端安装了一些包,所以除了从我的 WSL 主目录中删除 .expo
文件外,我还必须删除我的 node_modules
文件,并且运行 npm install
来自我的 windows-cmd 控制台。
通常当您看到如下错误时:
未捕获错误错误:EACCES:权限被拒绝,打开'/Users/r/.expo/state.json.728296139'
您可以再次尝试 运行 命令,但前面要加上 sudo。
例如下面的错误:
expo init my-app
Uncaught Error Error: EACCES: permission denied, open '/Users/r/.expo/state.json.728296139'
可以通过以下方式解决:
$ sudo expo init my-app
Password:
Well, i see that already have many questions related to my problem on this site, but i also see that NONE of the solutions work for my specific case, because of that, i am opening that question, so it is not a duplicate.
Context(环境)
- Linux 薄荷 19.1 肉桂
- 世博会 v32
- React-Native-Application
- GitHub Private Repository(从我克隆应用程序的地方)
- 节点最新 LTS (v10.15.1)
- NPM v6.4.1
- /\ 都使用 NVM(节点版本管理器)
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
是相同的。
我几乎不相信这是一个 OS 问题 因为上周我在另一个 os 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' }
如何重现:
- Install/Use OS Linux 薄荷 19.1 肉桂色。
- 安装nvm(节点版本管理器)
- 使用
nvm install 10.15.1
安装 npm 和节点
- 使用
npm install expo-cli
安装 expo-cli
- 使用
expo init
创建一个新的 expo react-native 项目。 - 尝试 运行 使用
expo start
。
我试过的
首先,我确定这个 project/application 运行 没问题,因为我上周有另一个 OS (初级OS),我是在这个项目上工作没有问题,我也有一个团队在这个项目上工作也没有问题。
- 我尝试重新安装
node
和npm
以及expo-cli
。 - 我试过
rm -rf node_modules
和npm install
。 - 我再次尝试删除
package.lock.json
和npm install
。 - 我试图为 npm 全局安装设置一个全局目录,如前所述
- 我尝试安装
nvm
节点版本管理器,(我正在使用它 atm)。 - 我尝试
chown myuser project-folder
授予我的用户访问该文件夹的权限(也在 .expo 文件夹和 node_modules 文件夹上尝试过) - 我试图
chmod 777 and 755 and 655
整个项目文件夹。 - 我尝试 运行 带有
sudo
前缀的expo start
、npm start
命令,但 sudo 找不到expo
或两者都找不到npm
。 - 我试图删除 repos 并再次使用
git clone
克隆它。 - 还有很多很多其他的事情。 (我也做了猎物)
也没有 SELinux 参与,如下所示:
ls -ld
drwxr-xr-x 2 itspauloroberto itspauloroberto 4096 Feb 20 14:54 .
正因为如此,我提出了这个问题,即使我在许多网站上看到这个错误 none 也有我的背景。
我找到问题了!
主要是因为我在某个时候使用sudo
安装了一些与expo相关的东西,然后expo创建了一些属于root
用户的文件另一个不在我正在工作的项目文件夹中的目录。
所以这是因为 expo 在最初安装 expo 时使用的初始文件显然是使用 sudo
安装的,因为此目录中的文件:home/itspauloroberto/.expo
以及该文件夹的所有者root
(我使用 la -ls
命令检查它并看到 root
作为所有者。)而不是我的用户 itspauloroberto
这是错误的主要来源。
要消除此错误,请执行以下步骤:
- 导航到
home/your_user/
目录。 - 使用
sudo rm -rf .expo
删除.expo
文件夹(需要 sudo,因为文件夹所有者是 root) - 运行 再次使用
expo start
展示
如果您发现与某些目录或文件相关的任何其他错误,请导航至错误消息中的 file/directory 并将其删除。因为它也应该属于 root
用户。
先卸载 expo。然后卸载 npm 并重新安装 npm 然后 expo
我遇到这个问题是因为我一直在本地使用 cmd
,在 Ubuntu WSL2 子系统中使用 bash。
我一定是从 ubuntu 终端安装了一些包,所以除了从我的 WSL 主目录中删除 .expo
文件外,我还必须删除我的 node_modules
文件,并且运行 npm install
来自我的 windows-cmd 控制台。
通常当您看到如下错误时:
未捕获错误错误:EACCES:权限被拒绝,打开'/Users/r/.expo/state.json.728296139'
您可以再次尝试 运行 命令,但前面要加上 sudo。
例如下面的错误:
expo init my-app
Uncaught Error Error: EACCES: permission denied, open '/Users/r/.expo/state.json.728296139'
可以通过以下方式解决:
$ sudo expo init my-app
Password: