我升级到最新的Expo CLI 2.19.2,并尝试使用SDK 33升级我的expo应用程序。
当我叫expo start时,我收到一条消息:
在浏览器中打开DevTools ...(按shift-d禁用)错误:未知选项`--assetPlugins'
Metro Bundler进程退出,代码为1,在您的计算机中设置EXPO_DEBUG = true env查看堆栈跟踪。
我尝试在Mac上设置EXPO_DEBUG = true,但在再次运行expo start时未显示任何调试详细信息。
我发现我应该将其命名为export EXPO_DEBUG = true
以下是其他消息:
错误:未知选项`--assetPlugins'
Metro Bundler进程退出,代码为1错误:Metro Bundler进程 用代码1退出 在ChildProcess。 (/@expo/xdl@54.1.2/src/Project.js:1598:16) 在Generator.next() 在步骤(/Users/simonlam/.nvm/versions/node/v11.6.0/lib/node_modules/expo-cli/node_modules/@expo/xdl/build/Project.js:2347:191) 在/Users/simonlam/.nvm/versions/node/v11.6.0/lib/node_modules/expo-cli/node_modules/@expo/xdl/build/Project.js:2347:437 在新的Promise() 在ChildProcess。 (/用户/simonlam/.nvm/版本/节点/v11.6.0/lib/node_modules/expo-cli/node_modules/@expo/xdl/build/Project.js:2347:99) 在ChildProcess.packagerProcess.once(/@expo/xdl@54.1.2/src/Project.js:1595:5) 在Object.onceWrapper(events.js:276:13) 在ChildProcess.emit(events.js:188:13) 在Process.ChildProcess._handle.onexit(internal / child_process.js:254:12)
答案 0 :(得分:6)
请确保还将“ react-native”升级到版本33。
version: "3.7"
services:
your-service:
build: ./dir
还要检查“ jest-expo”是否已更新,并在app.json中更改“ sdkVersion”以匹配SDK 33。
答案 1 :(得分:1)
问题与博览会项目中package.json
和app.json
中的版本不匹配有关。您需要按照以下说明进行升级,
更新您的Expo SDK版本
从项目中打开app.json
文件,并将sdkVersion
更改为33.0.0
更新您的依存关系
打开package.json
文件并更新以下依赖项,
将jest-expo
中的devDependencies
更新为^ 33.0.0
将react-native
中的https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz
更新为dependencies
将expo
中的dependencies
更新为^ 33.0.0
react-native
中的dependencies
更新为16.8.3 进行更改后,运行npm install
,然后通过运行expo r -c
清除较旧的js构建缓存来启动项目,您将很高兴。仅当您的SDK版本不匹配时,Metro Bundler
才会崩溃。有关更多信息,您可以阅读Upgrading the Expo SDK Step by Step
答案 2 :(得分:0)
我已经经历过几次了,总觉得有点神秘。根据我的经验,这可能是软件包不匹配,或者您需要清除博览会缓存。
请三遍检查您的package.json
中的版本是否正确。 https://docs.expo.io/versions/latest/workflow/upgrading-expo-sdk-walkthrough/#sdk-33
删除所有与EXPO相关的文件夹,并从已清除的缓存中启动EXPO
rm -rf node_modules/* && npm i && expo start -c
答案 3 :(得分:0)
如上所述,此问题通常是由于sdk,expo,expo-cli的软件包版本不匹配而引起的,因此请确保所有版本都兼容。
在我的情况下,问题是expo-cli版本较旧,而sdk是最新版本(今天有38个),而expo-cli的升级失败。
错误看起来像-
┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ │
│ There is a new version of expo-cli available (3.11.2). │
│ You are currently using expo-cli 3.11.0 │
│ Install expo-cli globally using the package manager of your choice; for example: `npm install -g expo-cli` to get the latest version │
│ │
└──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘
这就是我所做的,使它起作用-
which expo-cli
rm -rf <path>
npm install -g expo-cli # This ensures you have latest expo cli
现在可以运行
expo-cli start