React native 升级Expo CLI时出现未知错误--assetPlugins

React native 升级Expo CLI时出现未知错误--assetPlugins,react-native,sdk,expo,React Native,Sdk,Expo,我升级到最新的Expo CLI 2.19.2,并尝试使用SDK 33升级我的Expo应用程序 当我给世博会启动打电话时,我收到一条信息说: 正在浏览器中打开DevTools。。。(按shift-d禁用)错误:未知选项“---assetPlugins” Metro Bundler进程已退出,在您的 env以查看堆栈跟踪 我试图在Mac上设置EXPO_DEBUG=true,但在再次运行EXPO start时没有显示任何调试细节 我发现我应该称之为export EXPO_DEBUG=true 以下是附

我升级到最新的Expo CLI 2.19.2,并尝试使用SDK 33升级我的Expo应用程序

当我给世博会启动打电话时,我收到一条信息说:

正在浏览器中打开DevTools。。。(按shift-d禁用)错误:未知选项“---assetPlugins”

Metro Bundler进程已退出,在您的 env以查看堆栈跟踪

我试图在Mac上设置EXPO_DEBUG=true,但在再次运行EXPO start时没有显示任何调试细节

我发现我应该称之为export EXPO_DEBUG=true

以下是附加信息:

错误:未知选项“--assetPlugins”

高速绑定器进程退出,代码为1错误:高速绑定器进程 已退出,代码为1 在这个过程中。(//世博会)/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 在新的承诺() 在这个过程中。(/Users/simonlam/.nvm/versions/node/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.\u handle.onexit(内部/child\u Process.js:254:12)

请确保还将“react native”升级到版本33

yarn add react-native@https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz

另外,请检查“jest expo”是否已更新,并更改app.json中的“sdkVersion”以匹配SDK 33。

我已经做过几次了,它总是感觉有点神秘。根据我的经验,要么是包不匹配,要么你需要清除expo缓存

三次检查您的
包.json中是否有正确的版本

删除所有与expo相关的文件夹,并使用已清除的缓存启动expo


rm-rf node_modules/*&&npm i&&expo start-c

问题是关于您的expo项目中的
package.json
app.json
中的版本不匹配。您需要执行如下所示的升级

  • 更新您的Expo SDK版本

    从项目中打开
    app.json
    文件,并将
    sdkVersion
    更改为33.0.0

  • 更新你的依赖关系

    打开
    package.json
    文件并更新以下依赖项

    • devDependencies
    • 依赖项中的
      react native
      更新为^0.59.10
    • 依赖项中的
      expo
      更新为^33.0.0
    • 依赖项中的
      react
      更新为^16.8.3

  • 进行更改后,运行
    npm install
    ,然后通过运行
    expo r-c
    清除旧的js构建缓存来启动项目,您就可以开始了。只有当SDK版本不匹配时,
    Metro捆绑程序才会崩溃。有关详细信息,请通读上文所述,此问题通常是由于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