我有一个通过Grunt构建的网络应用程序。现在,我想使用PhoneGap / Cordova将该应用程序捆绑为我的构建过程的一部分。为了做到这一点,我已经包含了grunt-cordovacli模块并且有一个名为“deploy”的目标。部署设置如下:
grunt.registerTask('deploy', [
'build',
'cordovacli:add_platforms',
'cordovacli:add_plugins',
'cordovacli:prepare_ios',
'cordovacli:prepare_android',
'cordovacli:prepare_windows',
'cordovacli:build_ios',
'cordovacli:build_android',
'cordovacli:build_windows'
]);
我已通过在浏览器中加载内容来确认构建工作。我的cordovacli任务配置如下:
module.exports = function(config) {
return {
options: {
path: '/distribute'
},
cordova: {
options: {
command: ['prepare', 'create','platform','plugin','build'],
platforms: ['ios','android', 'wp8'],
plugins: ['device','dialogs'],
path: '/distribute',
id: 'myco.myapp',
name: 'myapp'
}
}
add_platforms: {
options: {
command: 'platform',
action: 'add',
platforms: ['ios', 'android', 'wp8']
}
},
add_plugins: {
options: {
command: 'plugin',
action: 'add',
plugins: [
'battery-status',
'camera',
'contacts',
'splashscreen'
]
}
},
build_ios: {
options: {
command: 'build',
platforms: ['ios']
}
},
build_android: {
options: {
command: 'build',
platforms: ['android']
}
},
build_windows: {
options: {
command: 'build',
platforms: ['wp8']
}
},
prepare_ios: {
options: {
command: 'prepare',
platforms: ['ios']
}
},
prepare_android: {
options: {
command: 'prepare',
platforms: ['android']
}
}
};
};
当我运行部署时,一切都会运行,直到cordova的东西。那时,我得到以下内容:
Running "cordovacli:add_platforms" (cordovacli) task
Using cordova CLI version (3.5.0-0.2.6)
Setting Current Working Directory (CWD) to distribute
Running:node C:\Projects\myapp\node_modules\grunt-cordovacli\node_modules\cordova\bin\cordova platform add ios
Running:node C:\Projects\myapp\node_modules\grunt-cordovacli\node_modules\cordova\bin\cordova platform add android
Running:node C:\Projects\myapp\node_modules\grunt-cordovacli\node_modules\cordova\bin\cordova platform add wp8
Current working directory is not a Cordova-based project.
>> Error
Error-> with Parallel tasksError
这有什么问题?我做错了什么?
答案 0 :(得分:0)
看起来您没有运行初始create
cordovacli任务,因此该项目不存在,因此无法添加平台。
Cordova知道您尚未创建应用,因为config.xml
路径中不存在/distribute
。
另外,请确保config.xml
与grunfile.js
位于同一目录中,否则由于某种原因,平台会在此处添加,而不是在指定的/distribute
路径中添加。我被困了一段时间才解决这个问题。