I have a Gruntfile in the root of my project. I also have jQuery installed via Bower in an app/components/jquery directory.
As part of my Gruntfile I\'d like to run
Based on @Sindre's and @Stephen's answer, we can also get the console output "in real time" without being buffered:
grunt.registerTask('run-grunt', function() {
var cb = this.async();
var child = grunt.util.spawn({
grunt: true,
args: ['clean', 'copy:fonts'],
opts: {
cwd: 'bower_components/bootstrap'
}
}, function(error, result, code) {
cb();
});
child.stdout.pipe(process.stdout);
child.stderr.pipe(process.stderr);
});
If you want to get console output, building on @Sindre's answer, all you have to do is console log the result.stdout.
grunt.registerTask('run-grunt', function() {
var cb = this.async();
grunt.util.spawn({
grunt: true,
args: ['clean', 'copy:fonts'],
opts: {
cwd: 'bower_components/bootstrap'
}
}, function(error, result, code) {
console.log(result.stdout);
cb();
});
});
You can create a simple task that spawns grunt in the folder you want:
grunt.registerTask('run-grunt', function () {
var done = this.async();
grunt.util.spawn({
grunt: true,
args: [''],
opts: {
cwd: 'app/components/jquery'
}
}, function (err, result, code) {
done();
});
});
dont know if that works, but you could give it a try. your jQuery Gruntfile is exported via "module.exports". that should mean, that you can require it in your code and use it.
var jQueryGrunt = require('path-to-jquery-gruntfile');
jQueryGrunt.task.run(['your-task-you-want-to-run']);
will be interesting to hear if that works...