本文档用于收集在配置 expo+react native 项目环境时出现的各种问题。


Error: EPERM: operation not permitted, unlink

在重装expo的时候报错的问题,可见,错误是 在安装expo-cli时,安装脚本想要删除一个叫AdbWinUsbApi.dll的文件,但因权限不足无法删除。

分析:

可能原因有:

  1. 权限不足(被排除),因用户目录基本不存在权限问题。
  2. windows在删除一个正在使用的文件时会被系统阻止。

解决方案:

  1. 使用终端进入该dll的目录,输入命令

regsvr32 /u AdbWinUsbApi.dll  终止对该dll的加载

  1. 重启电脑。

选择方案与执行结果:

因该目录下多个文件都正在被使用,懒,所以直接重启电脑。重启后手动删除“C:\Users\Administrator\AppData\Roaming\npm”下所有与expo-cli有关的文件和文件夹,保险起见使用命令npm cache clean–force清除npm的cache,并,并手动删除“C:\Users\Administrator\AppData\Roaming\npm-cache”目录下所有文件。再执行命令npm install –global expo-cli。安装成功。


37.0.0 is not a valid SDK version.

惊奇地发现react-native好死不死这几天更新了版本……刚好是expo的app还没有覆盖的版本……就离谱,在下载的时候完全无法发现……

解决方法:修改package.json的版本号。

stackoverflow:

In package.json change expo from

"dependencies":{"expo":"~37.0.3","react":"~16.9.0","react-dom":"~16.9.0","react-native":"https://github.com/expo/react-native/archive/sdk-37.0.1.tar.gz",

to 33 or any older version

"dependencies":{"expo":"^33.0.0","react":"16.8.3","react-dom":"^16.8.6","react-native":"https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz",

我们项目是 SDK36.0.0,把expo和react-native改成36.0.0就好了。还需要移除项目下的“node_module”文件夹,再重新 npm install


Unable to resolve “./removed” from “node_modules\expo\build\ExpoLazy.js”

expo r -c 

npm cache clean -f

清空expo和npm的缓存!成功!


0 条评论

发表评论

Avatar placeholder