I’m on expo 36.
We’ve been on expo for a long time, a few years, and we don’t even have a AppRegistry
line in our app nor a index.js
in our app. Here is the upgrade instructions for getting to expo web -
React Native-Only : Update your root
index.js
import {
AppRegistry,
+ Platform
} from 'react-native';
import App from './App';
import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => App);
+ if (Platform.OS === 'web') {
+ AppRegistry.runApplication(appName, {
+ rootTag: document.getElementById('root'),
+ });
+ }
So I’ve added an index.js which has all of the elements here, I’ve added the following to App.json
:
"entryPoint": "node_modules/expo/AppEntry.js",
...
"platforms": [
"android",
"ios",
"web"
]
}
in package.json
we’ve already got:
"main": "./node_modules/expo/AppEntry.js",
I had to put a flag on Mobile only features, then I needed to override the default webpack loader with a typescript loader, the error I’m getting on expo start --web
seems to be a react-native
error:
web Failed to compile.
./node_modules/react-native/Libraries/react-native/react-native-implementation.js
Module not found: Can't resolve '../Components/AccessibilityInfo/AccessibilityInfo' in '/home/user/WebstormProjects/myApp/customer/node_modules/react-native/Libraries/react-native'
✖ 「wdm」: Hash: c932c15ca702129a5e96
Version: webpack 4.39.0
Time: 668ms
Built at: 12/11/2019 5:56:10 PM
Asset Size Chunks Chunk Names
main.js 41.8 KiB 0 main
Entrypoint main = main.js
[0] ./node_modules/react-native/Libraries/react-native/react-native-implementation.js 15.3 KiB {0} [built]
[1] ./app.json 1.36 KiB {0} [built]
[2] ./node_modules/react-native/Libraries/Renderer/shims/ReactNative.js 334 bytes {0} [built] [failed] [1 error]
[3] ./node_modules/react-native/Libraries/EventEmitter/RCTDeviceEventEmitter.js 464 bytes {0} [built] [failed] [1 error]
[5] ./App.js 444 bytes {0} [built] [failed] [1 error]
[6] ./index.js 296 bytes {0} [built]
[7] ./node_modules/invariant/browser.js 1.36 KiB {0} [built]
[8] ./node_modules/react-native/Libraries/Utilities/warnOnce.js 339 bytes {0} [built] [failed] [1 error]
[9] ./node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicator.js 409 bytes {0} [built] [failed] [1 error]
[10] ./node_modules/react-native/Libraries/ART/ReactNativeART.js 355 bytes {0} [built] [failed] [1 error]
[11] ./node_modules/react-native/Libraries/Components/Button.js 375 bytes {0} [built] [failed] [1 error]
[12] ./node_modules/react-native/Libraries/Lists/FlatList.js 381 bytes {0} [built] [failed] [1 error]
[13] ./node_modules/react-native/Libraries/Image/ImageBackground.js 378 bytes {0} [built] [failed] [1 error]
[14] ./node_modules/react-native/Libraries/Components/TextInput/InputAccessoryView.js 405 bytes {0} [built] [failed] [1 error]
[15] ./node_modules/react-native/Libraries/Components/Keyboard/KeyboardAvoidingView.js 442 bytes {0} [built] [failed] [1 error]
+ 63 hidden modules
WARNING in ./index.js 5:30-37
"export 'name' (imported as 'appName') was not found in './app.json'
WARNING in ./index.js 8:29-36
"export 'name' (imported as 'appName') was not found in './app.json'
WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
I’m kind of at a loss as to what to do next. Any suggestions?