node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


Vue.js plugin for Cordova

How to use

Add the NPM package to your project

npm install --save vue-cordova

Add the plugin to your Vue instance according to your setup

// CommonJS 
var Vue = require('vue');
var VueCordova = require('vue-cordova');
// import 
import Vue from 'vue'
import VueCordova from 'vue-cordova'

The package provides a global object Vue.cordova


This object provides API for the following events and will hold the Cordova plugins API objects you might be using.


A repository with a full working demo is available to help you bootstrap a new project or cherry-pick working code.

Setup Cordova

Make sure you have properly configured Cordova. As any other Cordova project, you need to :

  1. Include cordova.js in your index.html (see Troubleshooting below)
  2. Have any necessary plugin installed cordova plugin add cordova-plugin-device


Trigger functions when Cordova events are fired.

Vue.cordova.on('deviceready', () => {
  console.log('Cordova : device is ready !');

Full list of events and compatibility table here.


Cordova plugins are also supported by vue-cordova. Plugins are automatically spotted and made available in Vue.cordova.plugins array.

Supported plugins

Plugins information and support list is in

There are many Cordova plugins out there and you may help us getting them supported ! It's pretty easy, see below.

Add a new plugin

  1. Create a file named by the plugin in the plugins/ directory
  2. Add your plugin to the list in src/index.js
  3. Write a tiny doc in PLUGINS.MD and update this
  4. PR ;)


My events don't seem to be fired

Cordova documentation isn't obvious about it but you need to include the following script tag in your www/index.html.

<script src="cordova.js"></script>
One of my plugins is not working properly

Did you install the plugin in your Cordova project ?

cordova plugin add cordova-plugin-device
The object is null

You probably need to wait for the deviceready event to fire. Keep calm and try to :

Vue.cordova.on('deviceready', () => {
  // your code here