我是使用grunt的初学者,所以我所说的一些内容可能根本就没有意义。
我正在运行一个管理多个项目的繁琐工作,所以拥有一个单独的gruntfile.js是700多行任务配置的压倒性优势。 (更不用说目录路径)
我想知道,是否可以在每个app目录中都有一个单独的gruntfile.js。
其次,如果可以在根目录下用编码创建一个gruntfile.js
grunt.registerTask('build_app1', '', function(){
// cd app1, run command: grunt build
})
如果这是不可能的,你不认为这可能是目标/未来开发者努力争取的目标吗?
反馈
答案 0 :(得分:0)
关于你的第一个问题:
是的,你可以做到。默认情况下," grunt在当前或父目录中查找最近的Gruntfile.js或Gruntfile.coffee文件"。
关于你的第二个问题:
我正在尝试使用Grunt找到类似的项目解决方案。但是,您可以使用此grunt插件:https://www.npmjs.com/package/grunt-shell。
还有另一个:https://www.npmjs.com/package/grunt-exec
你也可以使用" grunt.util.spawn"。请参阅Grunt官方网站。
使用它来执行某些任务shell很容易。
基于您想要做的事情的示例:
grunt.registerTask('build_app1', '', function(numApp) {
if('1' == numApp) {
grunt.task.run(['shell:moveToApp1']);
}
else if (...) { //2, 3, 4, ...
}
grunt.task.run(['shell:buildApp']);
});
grunt.initConfig({
shell: {
moveToApp1 :{
options: {
stderr:true
},
command: function() {
return 'cd app1';
buildApp: {
options: {
stderr: true
},
command: function() {
return 'grunt build';
}
}
});
我认为有一个更好的解决方案来动态更改目录。我相信你会找到解决方案。