grunt-contrib-watch未绑定递归错误

时间:2014-11-23 19:29:20

标签: gruntjs grunt-contrib-watch

我收到与此人相同的错误消息:

grunt-contrib-watch causing Maximum call stack size exceeded

跑步" grunt watch"在这个grunt文件上:

module.exports = function(grunt) {

    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),
        uglify: {
            options: {
                banner: '//Copyright (c) 2014 <%= pkg.author %>. All Rights Reserved.\n'
                },
            build: {
                files: {
                    "Static/JavaScript/<%= pkg.name %>/AppLogic.Min.js": ["Static/JavaScript/<%= pkg.name %>/AppLogic.js"]
                }
            }
        },
        less: {
            production: {
                options: {
                    cleancss: true
                },
                files: {
                    "Static/Css/<%= pkg.name %>/Style.Min.css": ["Static/Css/<%= pkg.name %>/Style.css"]
                }
            }
        },
        watch: {
            scripts: {
                files: ["Static/JavaScript/<%= pkg.name %>/AppLogic.js"],
                tasks: ["uglify"]
            },
            styles: {
                files: ["Static/Css/<%= pkg.name %>/Style.css"],
                tasks: ["less"]
            }
        }
    });

    grunt.loadNpmTasks("grunt-contrib-less");
    grunt.loadNpmTasks("grunt-contrib-uglify");
    grunt.loadNpmTasks("grunt-contrib-watch")

    grunt.registerTask("default", ["uglify", "less"]);
    grunt.registerTask("watch", ["watch"]);
};

看看答案,我的问题似乎与另一个问题有不同的原因,但肯定是错误的。

在没有参数的情况下运行grunt运行正常,因此&#34; uglify&#34;和&#34;少&#34;似乎是正确构建的。

运行&#34; grunt watch:scripts&#34;或者&#34; grunt watch:styles&#34;也会导致错误。

有什么想法吗?

PS:grunt / grunt-cli本地安装到我的应用程序,而不是全局安装在我的机器上。不要认为解决这个问题会有所作为,但为了完整起见......

此外,在错误弹出之前,我多次收到以下警告:

(节点)警告:检测到递归process.nextTick。这将在下一版本的节点中中断。请使用setImmediate进行递归递延。

1 个答案:

答案 0 :(得分:0)

啊,问题不是我的“监视”任务结构,而是这一行:

grunt.registerTask("watch", ["watch"]);

以与参数不同的方式命名任务修复了问题,如下所示:

grunt.registerTask("watch_", ["watch"]);

对以下答案的肯定,对不起重复:

warning: Recursive process.nextTick detected