本文档用于收集在配置 expo+react native 项目环境时出现的各种问题。
Error: EPERM: operation not permitted, unlink
在重装expo的时候报错的问题,可见,错误是 在安装expo-cli时,安装脚本想要删除一个叫AdbWinUsbApi.dll的文件,但因权限不足无法删除。
分析:
可能原因有:
- 权限不足(被排除),因用户目录基本不存在权限问题。
- windows在删除一个正在使用的文件时会被系统阻止。
解决方案:
- 使用终端进入该dll的目录,输入命令
regsvr32 /u AdbWinUsbApi.dll
终止对该dll的加载
- 重启电脑。
选择方案与执行结果:
因该目录下多个文件都正在被使用,懒,所以直接重启电脑。重启后手动删除“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 条评论