首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GruntJS链表

GruntJS链表
EN

Stack Overflow用户
提问于 2014-03-05 01:03:52
回答 1查看 90关注 0票数 3

考虑到这个示例配置(注意,为了保持简短,我省略了依赖项):

代码语言:javascript
运行
复制
module.exports = function(grunt) {

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        sass: {
            dev: {
                files: {
                    'style.css': 'custom.scss'
                }
            },
        },
        watch: {
            options: {
                livereload: true
            },
            css: {
                files: ['css/sass/**/*.scss'] ,
                tasks: ['sass:dev']
            },
            js:{
                files: ['js/**/*.js']
            },
            html:{
                files: ['templates/**/*.html']
            },
            dontRun:{
                files: ['/randomdir/*'],
                tasks:['randomtask']
            }
        }
    });

    grunt.registerTask('default', ['watch']);
};

如何启动监视和执行css, js and html (而不是dontRun )的手表?

我试过:

代码语言:javascript
运行
复制
grunt.registerTask('default', ['watch:css:js:html']);
grunt.registerTask('default', ['watch:css','watch:js','watch:html']);

但这两个都只是执行第一个手表,第二个和第三个只是没有启动。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-05 05:55:34

这是因为Grunt只能在一个系列中运行任务。因此,监视任务只能运行一个目标或所有目标。

但是,您可以使用动态别名任务来解决这一限制:

代码语言:javascript
运行
复制
grunt.registerTask('watchweb', function() {
  // Remove the targets you dont want
  grunt.config('watch.dontRun', null);
  // Then run the watch task after this task is done
  grunt.task.run('watch');
});

使用grunt watchweb运行。

或者使用任何配置的更健壮和通用的解决方案是:

代码语言:javascript
运行
复制
// Run with: grunt switchwatch:target1:target2 to only watch those targets
grunt.registerTask('switchwatch', function() {
  var targets = Array.prototype.slice.call(arguments, 0);
  Object.keys(grunt.config('watch')).filter(function(target) {
    return !(grunt.util._.indexOf(targets, target) !== -1);
  }).forEach(function(target) {
    grunt.log.writeln('Ignoring ' + target + '...');
    grunt.config(['watch', target], {files: []});
  });
  grunt.task.run('watch');
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22186476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档