Integrating BrowserSync into your Cordova workflow.
- Watch files in the
www
folder and automatically reload HTML and CSS in all connected devices - Use BrowserSync's dashboard to control devices and reload them.
- Synchronize scrolls, clicks and form inputs across multiple devices.
- Supports real devices and emulators for iOS and Android platforms
Here is a blog post explaining the plugin and its internals.
There are three ways to use the code in this plugin. Ensure that you have added the ws:
and unsafe-inline
CSP policies to your default-src
section of the CSP meta tag (<meta content=...>
) in index.html file.
Note that a
-- --live-reload
may need to be passed tocordova run
command.
The presence of this --live-reload
flag triggers the live reload workflow. Without this flag, the project remains unchanged. This way, the plugin does not have to be removed before packaging it for final deployment.
This simplest way to integrate this in your Cordova workflow is to add it as a plugin
cordova plugin add cordova-plugin-browsersync
and then run run the cordova with cordova run -- --live-reload
.
Clone this repo and run npm run createHook
to get a after_prepare.js
. Add this file as an after_prepare
hook to your config.xml. For example:
<hook type="after_prepare" src="scripts/after_prepare.js" />
You can also require('cordova-plugin-browsersync')
in your node module and use the changeHost
function and browserSyncServer
directly in your existing workflow.
In many cases other hooks may copy over JS, CSS or image assets into folders like www\lib
, typically from locations like bower_components
. These hooks may run at after_prepare
and hence should be ignored in the live reload workflow. To achieve this, run the command as
cordova run -- --live-reload --ignore=lib/**/*.*
The --ignore
commands takes an anymatch compatible destination relative to the www
folder.