我已经安装了expo-cli并设置了环境变量,但是出现了以下错误:
旧版的expo-cli不支持Node +17,请迁移到有版本号的Expo CLI(npx expo)。 Uncaught Error Error: EPERM: 操作不允许,mkdir 'C:\Users\a.expo'
Node版本:v18.12.1 npm版本:9.1.3
我已经安装了expo-cli并设置了环境变量,但是出现了以下错误:
旧版的expo-cli不支持Node +17,请迁移到有版本号的Expo CLI(npx expo)。 Uncaught Error Error: EPERM: 操作不允许,mkdir 'C:\Users\a.expo'
Node版本:v18.12.1 npm版本:9.1.3
npx expo start
开始。npx expo customize metro.config.js
,但命令未被识别。npx expo upgrade
时,我遇到了以下错误:Error: yarnpkg exited with non-zero code: 1
at ChildProcess.completionListener (/opt/homebrew/lib/node_modules/expo-cli/node_modules/@expo/spawn-async/src/spawnAsync.ts:65:13)
at Object.onceWrapper (node:events:628:26)
at ChildProcess.emit (node:events:513:28)
at maybeClose (node:internal/child_process:1091:16)
at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5)
...
at spawnAsync (/opt/homebrew/lib/node_modules/expo-cli/node_modules/@expo/spawn-async/src/spawnAsync.ts:26:19)
at YarnPackageManager._runAsync (/opt/homebrew/lib/node_modules/expo-cli/node_modules/@expo/package-manager/src/NodePackageManagers.ts:314:31)
at YarnPackageManager.addWithParametersAsync (/opt/homebrew/lib/node_modules/expo-cli/node_modules/@expo/package-manager/src/NodePackageManagers.ts:259:16)
at YarnPackageManager.addAsync (/opt/homebrew/lib/node_modules/expo-cli/node_modules/@expo/package-manager/src/NodePackageManagers.ts:263:5)
at upgradeAsync (/opt/homebrew/lib/node_modules/expo-cli/src/commands/info/upgradeAsync.ts:496:7)
at actionAsync (/opt/homebrew/lib/node_modules/expo-cli/src/commands/info/upgradeAsync.ts:42:3)
我必须先运行yarn upgrade expo
,然后再运行npx expo upgrade
,这似乎已经解决了expo CLI错误。我也能够成功地运行最初的npx expo customize metro.config.js
命令。
$ npm install --global expo-cli // 1st command
$ expo init demo_app // 2nd command
WARNING: The legacy expo-cli does not support Node +17. Migrate to the new local Expo CLI: https://blog.expo.dev/the-new-expo-cli-f4250d8e3421.
[14:38:50]
Migrate to using:
› npx create-expo-app --template
[14:38:51] Input is required, but Expo CLI is in non-interactive mode.
--template: argument is required in non-interactive mode. Valid choices are: "blank", "tabs", "bare-minimum" or any custom template (name of npm package).
解决此问题的步骤:
1 - 卸载 expo-cli:
npm uninstall --global expo-cli
npm install --global @expo-cli
npx create-expo-app demo_app --template expo-template-blank-typescript
cd demo_app
npm install react-native-web@~0.19.6
npm install react-dom@18.2.0
npm install @expo/webpack-config@^19.0.0
npm run web