我使用节点与 Grunt 进行Cordova混合移动开发。
这是我的文件夹结构
myApp
|
|__ platforms
|
|__ www
|
|__ merges
|
|__ src
|
|___ app
| |__ ios
| | |__ js
| | | |__ file1.js
| |__ android
| | |__ js
| | | |__ file2.js
| | | |
|__ test
|__ Gruntfile.js
|__ bower_components
|__ package.json
这是我的Grunt配置(Gruntfile.js)。
module.exports = function(grunt) {
var config = {
app: 'app',
dist: '../www',
platform: grunt.option('platform');
};
require('load-grunt-tasks')(grunt);
grunt.initConfig({
config: config,
jshint: {
options: {
jshintrc: '.jshintrc'
},
all: [
'<%= config.app %>/<%= config.platform %>/js/**/*.js'
]
}
// Others
});
grunt.registerTask('jshint-both-platforms', 'Run jshint for single or both platforms', function() {
// if platform is not passed run jshint for both platforms one by one
if(config.platform === null) {
grunt.config.set('platform', 'ios');
grunt.task.run(['jshint']);
grunt.config.set('platform', 'android');
grunt.task.run(['jshint']);
grunt.config.set('platform', null);
return;
}
// if the platform is passed run jshint for the passed one
grunt.task.run(['jshint']);
});
// others
}
如果您看到jshint任务配置,我已经为android和ios使用了一个块。
我有一个名为jshint-both-platforms
的自定义任务,如果用户不在命令行或终端中传递任何参数,则会为两个平台运行jshint。如果您看到自定义任务,则按顺序逐个运行两个平台的jshint
任务。
如何同时为两个平台运行jshint
任务?
答案 0 :(得分:1)
grunt任务的步骤不是并发的,但您可以使用grunt parallelize在任务级别执行并发作业: