由于本机基本模块,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:
有关如何升级到SDK 33以及如何配置和启用Web平台的信息.
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'
我正在使用纱线
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
,react-native
,react-navigation
,@expo
,@react-navigation
.任何其他模块都需要通过创建扩展@expo/webpack-config
的新webpack配置或通过将模块名称添加到app.json
来手动添加到配置文件中,如下所示: https://github.com/hectahertz/react-native-typography/pull/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屋!