csantanapr / grunt-cordovacli

Wraps web app with Cordova CLI using GruntJS
Apache License 2.0
60 stars 31 forks source link

grunt-cordovacli Build Status

"Wraps a web application as a hybrid app with Apache Cordova CLI or Crome Cordova Apps CLI"

First Install Cordova or CCA

Gettings Started with Grunt and the Cordova/CCA Grunt Plugin

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-cordovacli --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-cordovacli');

The "cordovacli" task

Run this task with the grunt cordovacli command.

Overview

In your project's Gruntfile, add a section named cordovacli to the data object passed into grunt.initConfig().

Usage Examples


cordovacli: {
    options: {
        path: 'myHybridAppFolder',
        cli: 'cordova'
    },
    cordova: {
        options: {
            command: ['create','platform','plugin','build'],
            platforms: ['ios','android'],
            plugins: ['device','dialogs'],
            path: 'myHybridAppFolder',
            id: 'io.cordova.hellocordova',
            name: 'HelloCordova'
        }
    },
    create: {
        options: {
            command: 'create',
            id: 'com.myHybridApp',
            name: 'myHybridApp'
        }
    },
    add_platforms: {
        options: {
            command: 'platform',
            action: 'add',
            platforms: ['ios', 'android']
        }
    },
    add_plugins: {
        options: {
            command: 'plugin',
            action: 'add',
            plugins: [
                'battery-status',
                'camera',
                'console',
                'contacts',
                'device',
                'device-motion',
                'device-orientation',
                'dialogs',
                'file',
                'geolocation',
                'globalization',
                'inappbrowser',
                'media',
                'media-capture',
                'network-information',
                'splashscreen',
                'vibration'
            ]
        }
    },
    remove_plugin: {
        options: {
            command: 'plugin',
            action: 'rm',
            plugins: [
                'battery-status'
            ]
        }
    },
    build_ios: {
        options: {
            command: 'build',
            platforms: ['ios']
        }
    },
    build_android: {
        options: {
            command: 'build',
            platforms: ['android']
        }
    },
    emulate_android: {
        options: {
            command: 'emulate',
            platforms: ['android'],
            args: ['--target','Nexus5']
        }
    },
    add_facebook_plugin: {
        options: {
            command: 'plugin',
            action: 'add',  
            plugins: [                 
                'com.phonegap.plugins.facebookconnect'
            ],
            args:['--variable','APP_ID=fb12132424','--variable','APP_NAME=myappname']
        }
    }
}

Options

options.cli

Type: String Default value: 'cordova' Valid values for String: 'cordova' 'cca' Specify the cli to use

options.command

Type: String or Array Valid values for String: 'create' 'platform' 'plugin' 'build' 'emulate' 'prepare' 'compile' 'run' 'serve' Specify the cordova command when using String

Valid values for Array: 'create' 'platform' 'plugin' 'prepare' 'compile' 'build' Specify a full cycle or series of cordova commands when is an Array

options.id

Type: String Default value: 'io.cordova.hellocordova' Use with Command: 'create'

Specify the ID (reverse-domain-style package name) for the Cordova App

options.name

Type: String Default value: 'HelloCordova' Use with Command: 'create'

Specify the Name for the Cordova App

options.path

Type: String Default value: 'HelloCordova'

Specify the path to the Cordova project directory

options.action

Type: String Valid value: 'add' 'rm' 'remove' Required for Commands: 'platform'

Specify the action to perform

options.platforms

Type: String 'Array' Valid value: 'ios' 'android' 'blackberry10' 'wp8' 'ubuntu' 'firefoxos' 'amazon-fireos' Version can be specified like 'ios@3.7.0' Can also pass a directory containing a platform git repository Required for Commands: 'platform' Not Applicable for Commands: 'plugin' Optional for other commands If using with option.action=add and platform is already present, then the add action it's skip

Specify the platform type

options.plugins

Type: String 'Array' Shortcut values for Apache Cordova plugins:

'battery-status'
'camera'
'console'
'contacts'
'device'
'device-motion'
'device-orientation'
'dialogs'
'file'
'geolocation'
'globalization'
'inappbrowser'
'media'
'media-capture'
'network-information'
'splashscreen'
'vibration'

Use with Commands: 'plugin'

Specify the plugin to add to the Cordova project It can be specify in 4 forms:

If using with option.action=add and using ID or ID@version, and plugin is already present, cordova will skip it If using remove or rm options.command to remove a plugin only Shortcut or ID are supported

Contributing

Biggest contribution you can do is to open issues. You will need to have signed off on the Apache CLA in order for changes to be accepted. For more information, refer to: http://www.apache.org/licenses/#clas In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Grunt.