Expo for Web 编译失败,因为原生基础模块 [英] Expo for Web failed to compile because of native base module

查看:8
本文介绍了Expo for Web 编译失败,因为原生基础模块的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试让网络博览会"部分为我的托管博览会项目工作.

I'm trying to get the "expo for web" part working for my managed expo project.

我将我的托管 expo 项目升级到 expo sdk 33,以便我还可以在 Web 平台上部署我的应用程序,并且最好从 firebase 托管它.我遵循了世博会的官方指示:

I upgraded my managed expo project to expo sdk 33 so that I could also deploy my app on the web platform and ideally have it hosted from firebase. I followed official instructions from expo:

升级 Expo SDK 演练

Expo CLI 和 SDK 网络支持测试版

Expo CLI and SDK web support beta

在博览会中使用网络博览会初始化项目

关于如何升级到 SDK 33 以及如何配置和启用网络平台.

on how to upgrade to SDK 33 and how to configure and enable the web platform.

Expo-cli 版本是:'2.19.5'

Expo-cli version is : '2.19.5'

我正在使用 Yarn

package.json

{
  "main": "node_modules/expo/AppEntry.js",
  "scripts": {
    "start": "expo start",
    "android": "expo start --android",
    "ios": "expo start --ios",
    "eject": "expo eject"
  },
  "dependencies": {
    "@expo/vector-icons": "latest",
    "expo": "next",
    "expo-cli": "^2.19.5",
    "expo-codemod": "^1.0.0",
    "expo-constants": "latest",
    "expo-image-manipulator": "latest",
    "expo-image-picker": "latest",
    "expo-intent-launcher": "latest",
    "expo-permissions": "latest",
    "firebase": "^5.8.1",
    "native-base": "^2.12.1",
    "react": "16.8.3",
    "react-dom": "^16.8.6",
    "react-firebaseui": "^3.1.2",
    "react-native": "https://github.com/expo/react-native/archive/sdk-33.0.0.tar.gz",
    "react-native-alert-async": "^1.0.3",
    "react-native-modal": "^9.0.0",
    "react-native-modal-datetime-picker": "^6.0.0",
    "react-native-picker-select": "^5.2.3",
    "react-native-web": "^0.11.4",
    "react-navigation": "^3.5.0-alpha.0",
    "react-redux": "^6.0.0",
    "redux": "^4.0.1",
    "redux-thunk": "^2.3.0",
    "rxjs": "^6.3.3",
    "schedule": "0.4.0",
    "uuid": "^3.3.2"
  },
  "devDependencies": {
    "babel-preset-expo": "^5.0.0",
    "prettier": "1.16.4"
  },
  "prettier": {
    "jsxBracketSameLine": true,
    "arrowParens": "always",
    "bracketSpacing": false
  },
  "private": true
}

这是我遇到的错误,抱歉,我完全不确定如何修复它.我已将 expo 和 native base 更新到最新版本.

This is the error I'm getting, Sorry I'm not sure at all how to fix it. I have updated expo and native base to the latest versions.

任何帮助将不胜感激.

Failed to compile.
/node_modules/native-base-shoutem- 
theme/src/StyleProvider.js 10:19
Module parse failed: Unexpected token (10:19)
You may need an appropriate loader to handle this file type.
|  */
| export default class StyleProvider extends React.Component {
>   static propTypes = {
|     children: PropTypes.element.isRequired,
|     style: PropTypes.object,

推荐答案

这是因为 Expo CLI 使用的 Webpack 配置会自动转译任何以 expo 开头的 node_modulesreact-nativereact-navigation@expo@react-navigation.任何其他模块都需要手动添加到配置文件中,方法是创建扩展 @expo/webpack-config 的新 webpack 配置,或者将模块名称添加到 app.json 像这样:https://github.com/hectahertz/react-native-排版/拉/31

This is because the Webpack config used by Expo CLI will automatically transpile any node_modules that start with expo, react-native, react-navigation, @expo, @react-navigation. Any other modules need to be manually added to the config file either by creating a new webpack config that extends @expo/webpack-config or by adding the module name to the app.json like so: https://github.com/hectahertz/react-native-typography/pull/31

"expo": {
  ...
  "web": {
    "build": {
      "babel": {
        "include": [
          "native-base-shoutem-theme"
        ]
      }
    }
  }
}

这篇关于Expo for Web 编译失败,因为原生基础模块的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆