升级Expo CLI的未知错误--assetPlugins

时间:2019-06-07 04:43:01

标签: react-native sdk expo

我升级到最新的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)

4 个答案:

答案 0 :(得分:6)

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

version: "3.7"
services:
  your-service:
    build: ./dir

还要检查“ jest-expo”是否已更新,并在app.json中更改“ sdkVersion”以匹配SDK 33。

答案 1 :(得分:1)

问题与博览会项目中package.jsonapp.json中的版本不匹配有关。您需要按照以下说明进行升级,

  1. 更新您的Expo SDK版本

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

  2. 更新您的依存关系

    打开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