npm expo应用程序找不到指定的路径... node_modules\cross-spawn\lib\enoent.js

eqzww0vc  于 2023-10-19  发布在  其他
关注(0)|答案(1)|浏览(126)

我已经使用不同的命令创建了一个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设置重试。

oxcyiej7

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(作为管理员)可以正常工作。
希望这对你有帮助。

相关问题