我已经使用不同的命令创建了一个Expo应用程序,但在启动Metro Bundler时仍然会出现相同的错误。
Error: The system cannot find the path specified.
at notFoundError (C:\Users\bee\Documents\GitHub\walletwallie\node_modules\cross-spawn\lib\enoent.js:6:26)
at verifyENOENT (C:\Users\bee\Documents\GitHub\walletwallie\node_modules\cross-spawn\lib\enoent.js:40:16)
at cp.emit (C:\Users\bee\Documents\GitHub\walletwallie\node_modules\cross-spawn\lib\enoent.js:27:25)
at ChildProcess._handle.onexit (node:internal/child_process:291:12)
我想安装cross-spawn,因为我以为它不在我的node_modules中,但它确实存在。
我以前成功地创建了这个项目。为此,我全局安装了安装了,并且使用了节点18.16.0,但项目记录了一些折旧警告
npm WARN deprecated @npmcli/[email protected]: This functionality has been moved to @npmcli/fs
npm WARN deprecated [email protected]: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.
npm WARN deprecated [email protected]: support for ECMAScript is superseded by `uglify-js` as of v3.13.0
Expo SDK 44不支持react-native 0.72。所以我不得不更新Expo。
npm install expo@^49.0.0
npx expo install --fix
它解决了这个问题但expo抱怨说,它不支持node 17及更高版本。
必须使用NVM节点版本管理器来安装节点版本16.20.1,并且交叉生成错误开始在这里和那里生成。
我用来重现此错误的步骤:
npx create-expo-app --template
选择了空白(裸露)选项。
npx expo start --android
1.步骤与1相同,但选择了空白选项。
3.已安装使用npm的插件
expo init walletwallie
得到了同样的错误。
如果有人知道一个更好的环境。使用(Node,NPM,Expo SDK,react-native)版本的组合来构建我的入门项目,没有错误,请让我知道。
我将尝试从全局npm包中删除expo-cli包,然后使用本地expo设置重试。
1条答案
按热度按时间oxcyiej71#
从昨天开始,我就一直在为同一个问题而挣扎。终于修好了
我能够通过在powershell中运行
yarn android
而不是bash来解决这个问题。是什么导致了这个问题:
找不到的文件是
adb
二进制文件,它(expo正在ANDROID_HOME环境变量中指定的路径中查找(这是当我恢复使用全局expo/expo时-也许本地expo/expo正在非弃用的ANDROID_SDK_ROOT
中查找)。我使用的是Bash shell,在ANDROID_HOME env变量中指定的文件夹使用的是windows风格的文件夹路径,处理得不好,所以找不到文件。
在powershell中运行
yarn android
(作为管理员)可以正常工作。希望这对你有帮助。