Update it to latest version 0.5.8. Latest versions of lein-figwheel
generate the "figwheel.connect" including the build id, so I updated
figwheel-bridge to concat the platform id.
Figwheel logs compilation exception in several log messages, so need to buffer them to show in YellowBox.
- buffering starts on "Fighweel: Compile Exception"
- buffering stops on "Error on file"
- ReactNative server host updates had to be changed for 0.29.2: AppDelegate.m does not have host anymore, RegExp for host in RCTWebSocketExecutor.m had to be changed.
- using latest available version of lein-figwheel [0.5.0-6]
- figwheel now 'thinks' it is running in node.js environment (thanks @artemyarulin for hints)
- figwheel :heads-up-display is now disabled. Compilation warnings are still logged and shown in yellow box on screen. (thanks @seantempesta for hint)
- added re-natal.support namespace which provides functions to make it possible mounting om root application not on "real" root node but on other component which acts as a root node.
Now it is just static ui which works with figwheel-bridge. Could not implement :jsload-callback tom make figwheel work correctly yet.
State has to be introduced next.
- forcing reloading core namespace (using ^:figwheel-load annotation) is wrong. It causes evaluation of wrong js files for platform because both ios and android core.js files are reloaded.
Bug description:
figwheel-bridge tracks the js file evaluation and when /env/<platform>/main.js script is evaluated it means that all app code is loaded and can be started. But in case user code contains custom namespace called *.main, then figwheel-bridge interpret the evaluation of this namespace incorrectly and tries to start app too early.
- remove setting up host from use-figwheel command
- introduce use-android-device command for changing android host. use-android-device command has to be executed only when user changes android device type for development
- change figwheel support functions in user.clj to support multiple builds
- add instructions to README of how to run iOS and Android simulators simultaneously
- use-figwheel command scans for all files in image dirs (configured in .re-natal) and adds a require() call to each image index.*.js
- removed require-img macros
- core.cljs now uses normal 'js/require' function to load static image.
- do not use AppRegistry.registerRunnable for mounting component to id 1, this prevents warning to be shown in yellow box. Instead use AppRegistry.registerComponent
- shim some document functions so that enabled figwheel heads-up-display works without errors and logs warnings to console (that will be shown on screen in yellow box)
- figwheel splash component now loads real app and renders root component. That has to be done to avoid using AppRegistry.registerRunnable to render real app
- new CLI command use-component <name> which save name in .re-natal config for later use in use-figwheel command
- use-figwheel now generates a map of cached 'require' calls
- figwheel-bridge.js shims require function to lookup for components by name falls back to original if nothing found
- Used macro to generate js/require for prod compilation and {:uri http://localhost:8080/*} for dev builds.
- Rearranged sources to be able to support dev and prod profiles