【问题标题】:Upgrade Expo CLI have unknown error --assetPlugins升级 Expo CLI 有未知错误 --assetPlugins
【发布时间】:2019-10-22 14:12:19
【问题描述】:

我升级到最新的 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 退出 在子进程。 (/@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 在新的承诺 () 在子进程。 (/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._handle.onexit (internal/child_process.js:254:12)

【问题讨论】:

    标签: react-native sdk expo


    【解决方案1】:

    请务必将“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。

    【讨论】:

      【解决方案2】:

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

      1. 更新您的 Expo SDK 版本

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

      2. 更新您的依赖项

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

        • devDependencies 中将jest-expo 更新为^33.0.0
        • dependencies 中将react-native 更新为^0.59.10
        • dependencies 中将expo 更新为^33.0.0
        • dependencies 中将react 更新为^16.8.3

      进行更改后,运行 npm install,然后通过运行 expo r -c 清除旧的 js 构建缓存来启动项目,一切顺利。只有 SDK 版本不匹配,Metro Bundler 才会崩溃。更多信息可以阅读Upgrading the Expo SDK Step by Step

      【讨论】:

        【解决方案3】:

        我遇到过几次,总感觉有点神秘。根据我的经验,要么是包不匹配,要么您需要清除 expo 缓存。

        三重检查您的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

        【讨论】:

          【解决方案4】:

          如上所述,此问题通常是由于 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
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2022-01-22
            • 1970-01-01
            • 2022-10-20
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多