无法在expo-react-native应用程序上运行'expo start',权限问题

问题描述 投票:1回答:1

好吧,我看到已经有很多问题与我在这个网站上的问题有关,但我也看到没有解决方案适用于我的具体情况,因此,我打开这个问题,所以它不是重复。

上下文(环境)

  • Linux薄荷19.1肉桂
  • 世博会v32
  • 反应 - 本机应用程序
  • GitHub私有存储库(从我克隆的应用程序)
  • 节点最新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 startnpm start是相同的。

我很难相信这是一个操作系统问题,因为上周我在另一个操作系统elementary-os上使用相同的项目,我没有任何问题!

然后当我执行expo startnpm 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' }

如何重现它:

  • 安装/使用OS Linux Mint 19.1 Cinnamon。
  • 安装nvm(node-version-manager)
  • 使用nvm install 10.15.1安装npm和node
  • 使用npm install expo-cli安装expo-cli
  • 使用expo init创建一个新的expo react-native项目。
  • 尝试使用expo start运行它。

我试过的

首先,我确信这个项目/应用程序运行正常,因为我上周有另一个操作系统(elementaryOS),我正在处理该项目没有任何问题,我也有一个工作团队没有问题也。

  • 我试图重新安装我的nodenpm以及expo-cli
  • 我试着rm -rf node_modulesnpm install
  • 我试图再次移除package.lock.jsonnpm install
  • 我试图为npm全局安装设置一个全局目录,并获得here的许可
  • 我试图安装nvm节点版本管理器,(我正在使用它atm)。
  • 我试图让chown myuser project-folder给我的用户访问该文件夹(也试过.expo文件夹和node_modules文件夹)
  • 我试着把chmod 777 and 755 and 655整个项目文件夹。
  • 我试图用expo start前缀运行npm startsudo命令但是sudo找不到expo或者既没有找到npm
  • 我试图删除存储库并再次使用git clone克隆它。
  • 还有许多很多其他的东西。 (我也做过猎物)
  • 此外,没有SELinux参与,如下所示: ls -ld drwxr-xr-x 2 itspauloroberto itspauloroberto 4096 Feb 20 14:54。

因为我正在创建这个问题,即使我在很多网站上看到这个错误都没有我的背景。

node.js react-native npm expo linuxmint
1个回答
2
投票

我发现了问题!

主要原因是,在某些时刻,我使用sudo安装与expo相关的东西,然后expo在另一个目录中创建了一些属于root用户的文件,该目录不在我工作的项目文件夹中。

所以这是因为展示初始安装的expo的初始文件显然是使用sudo安装的,因为这个目录中的文件:home/itspauloroberto/.expo以及文件夹归root所有(我使用la -ls命令检查它并看到root作为所有者。)而不是我的用户itspauloroberto,这是错误的主要来源。

要消除此错误,请执行以下步骤:

  • 导航到home/your_user/目录。
  • 使用.expo删除sudo rm -rf .expo文件夹(因为文件夹所有者是root,所以需要sudo)
  • 使用expo start再次运行世博会

如果发现与某个目录或文件相关的任何其他错误,请导航到错误消息上的文件/目录并将其删除。因为它也应该属于root用户。

© www.soinside.com 2019 - 2024. All rights reserved.