使用grunt任务构建Cordova项目并启动模拟器

时间:2014-06-19 10:00:04

标签: cordova gruntjs

我对cordova和grunt很新。

我能够通过cli创建一个phonegap应用程序:

cordova create test1 com.example.test1 Test1 
cd test1
cordova platform add android
cordova build android

此外,通过eclipse运行genymotion模拟器,我可以模拟创建的应用程序。

我要做的是创建一个grunt任务,构建phonegap应用程序并运行模拟器。我之前从未使用过grunt所以我用Google搜索并找到了这篇文章:

http://www.raymondcamden.com/index.cfm/2013/11/7/Using-Grunt-to-automatically-build-your-PhoneGapCordova-projects

及其摘录:

module.exports = function(grunt){

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        exec:{
            prepare:{
                command:"cordova prepare",
                stdout:true,
                stderror:true
            }
        },
        watch:{
            files:['www/**/*.*'],
            tasks:['exec:prepare']
        }
    });

    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-exec');

    grunt.registerTask('default', ['watch']);

};

据我所知,当www文件夹发生变化时,这会准备一下phonegap应用程序。

任何人都可以帮助我为我的案例提供一些实际的例子,可能还有一些解释,因为我对此很新。谢谢!

2 个答案:

答案 0 :(得分:2)

好的..有一种很好的方法可以解决这个问题。

安装grunt-shell,

npm install --save-dev grunt-shell

在Gruntfile.js中定义以下内容

module.exports = function (grunt) {
var path = require('path');
var cordova_cmd = function(cmd) {
     var target = grunt.option('target') || "ios";
     return path.join(
      __dirname, "platforms",
      target, "cordova", cmd);
     }

grunt.initConfig({
shell: {
        build: {
            command: 'cordova build && ' +
            cordova_cmd('emulate')
        },
        run: {
            command: 'cordova build &&' +
            cordova_cmd("run")
        }
    },
});

然后注册任务以运行这些命令

grunt.registerTask('emulate', [
'shell:build']);

   grunt.registerTask('run', [
   'shell:run'
 ]);

这应该允许你运行

>grunt emulate

模拟或

>grunt run 

在真实设备上运行

答案 1 :(得分:0)

您可能想尝试this,它会生成具有良好结构的完整项目,并且已经准备好构建脚本