我如何从一个咕task任务中运行一个咕噜任务?
我创build了一个新的grunt任务,在其中我想使用grunt-contrib-concat来连接几个文件。
我查看了文档,但是我没有发现任何暗示能够做到的事情。 这似乎是一个微不足道的用例,所以我可能只是在看什么。
更新1:
我也希望能够从我的自定义任务中configuration此任务。
例如,我在我的自定义任务中创build了一个文件列表。 有了这个列表之后,我想把它们传递给concat任务。 我怎样才能做到这一点?
我希望能够做到这样的事情。
grunt.task.run('concat', { src: ['file1','file2'], dest: 'out.js'})
更新2:
为了达到我想要的,我必须手动configurationgrunt任务。 这是一个例子,显示我想要什么。
https://github.com/gruntjs/grunt-contrib/issues/118#issuecomment-8482130
以下是在任务中手动configuration任务然后运行的示例。
https://github.com/gruntjs/grunt-contrib/issues/118#issuecomment-8482130
grunt.registerMultiTask('multicss', 'Minify CSS files in a folder', function() { var count = 0; grunt.file.expandFiles(this.data).forEach(function(file) { var property = 'mincss.css'+count+'.files'; var value = {}; value[file] = file; grunt.config(property, value); grunt.log.writeln("Minifying CSS "+file); count++; }); grunt.task.run('mincss'); });
从https://github.com/gruntjs/grunt/wiki/Creating-tasks
grunt.registerTask('foo', 'My "foo" task.', function() { // Enqueue "bar" and "baz" tasks, to run after "foo" finishes, in-order. grunt.task.run('bar', 'baz'); // Or: grunt.task.run(['bar', 'baz']); });
对阿龙来说,指出我们正确的方向来解决他自己的问题。 grunt.config是上面例子的关键。 该任务将覆盖browserify任务的src属性
任务定义:
grunt.registerTask('tests', function (spec) { if (spec) { grunt.config('browserify.tests.src', spec); } grunt.task.run(['jshint', 'browserify:tests', 'jasmine']); });
任务调用:
grunt tests
要么
grunt tests:somewhere/specPath.js
如果你感觉很懒,我最终发布了一个npm模块,将你的任务的configuration转发到你想运行的子任务: