咕噜 - 排队任务前一个任务后运行完成
我看着官方咕噜文档创建任务在这里咕噜 - 排队任务前一个任务后运行完成
http://gruntjs.com/creating-tasks
我有我想要做的两个任务,但第二个不能一直运行到第一个完成后。这是因为第二个任务从第一个任务获得输出并使用它创建新的输出。
要打破它
我的项目涉及到引导,所以它有很多的未使用的代码。我的第一个目标是用uncss
删除未使用的代码。然后,我会从这个新的CSS文件的输出,并用cssmin
缩小它。
这里是从gruntjs确切的例子
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.registerTask('default', 'uncss', function() {
grunt.task.run('cssmin');
});
这意味着,进入grunt
时,默认的是运行uncss
任务首先等待它完成,然后运行cssmin
任务。不过,我得到这个输出
运行 “默认” 任务
运行 “cssmin:CSS”(cssmin)任务创建
1文件。 3.38kb - > 2.27kb
进行的,没有错误
这里是我的initConfig
uncss: {
dist: {
files: {
'directory/assets/stylesheets/tidy.css': ['directory/*.html', 'directory/views/*.html']
}
}
},
cssmin: {
css: {
files: {
'directory/assets/stylesheets/styles.min.css': ['directory/assets/stylesheets/styles.css']
}
}
}
换句话说,我有我的文件夹中的两个样式表。一个包含我创建的自定义样式,另一个包含缩小的Bootstrap。通过运行uncss
,我将得到一个名为tidy.css
的新css文件。
cssmin任务应该查找此tidy.css文件并将其缩小,以产生新的styles.min.css
文件。
我可以得到这个工作,但我必须手动运行一个任务,然后运行另一个。我如何可以自动完成这一让他们按顺序运行
第一,最好的做法是使用NPM包来自动加载的所有任务:
// Load grunt tasks automatically
require('load-grunt-tasks')(grunt);
这里有两个咕噜任务:
one: {
wake up...
},
two: {
dress up...
},
这里是你如何运行一个接一个
grunt.registerTask('oneThenOther', [
'one',
'two'
]);
你很近。当注册您的alias task时,您需要按顺序传递一组任务,而不是单个任务。
grunt.registerTask('default', ['uncss', 'cssmin']);
或者,序列可通过CLI来指定:
> grunt uncss cssmin
这也有帮助。你会得到一个upvote。欢迎来到SO! –
原来问题的一部分是我被指定下cssmin了错误的文件。
更改我的cssmin config来
cssmin: {
css: {
files: {
'directory/assets/stylesheets/styles.min.css': ['directory/assets/stylesheets/tidy.css']
}
}
}
,然后在阵列注册任务解决它
grunt.registerTask('default', ['uncss', 'cssmin']);
注意,任务必须按照这个顺序来指定。
您有最详细的回复。你的答案被接受 –