Expo for Web 编译失败,因为原生基础模块 [英] Expo for Web failed to compile because of native base module
问题描述
我正在尝试让网络博览会"部分为我的托管博览会项目工作.
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 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_modules
、react-native
、react-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屋!