我对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搜索并找到了这篇文章:
及其摘录:
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应用程序。
任何人都可以帮助我为我的案例提供一些实际的例子,可能还有一些解释,因为我对此很新。谢谢!
答案 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,它会生成具有良好结构的完整项目,并且已经准备好构建脚本