Javascript 如何指定要在watch grunt配置上运行的子TAK

Javascript 如何指定要在watch grunt配置上运行的子TAK,javascript,gruntjs,grunt-contrib-watch,Javascript,Gruntjs,Grunt Contrib Watch,我有以下监视配置,可以重新加载页面并运行其他任务 watch: { js: { files: ['gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**', 'test/**/*.js'], tasks: ['jshint'], options: { livereload: tru

我有以下监视配置,可以重新加载页面并运行其他任务

watch: {
            js: {
                files: ['gruntfile.js', 'server.js', 'app/**/*.js', 'public/js/**', 'test/**/*.js'],
                tasks: ['jshint'],
                options: {
                    livereload: true,
                },
            },
            html: {
                files: ['public/views/**', 'app/views/**'],
                options: {
                    livereload: true,
                },
            },
            css: {
                files: ['public/css/**'],
                options: {
                    livereload: true
                }
            },
            test: {
                files: ['app/**/*.js', 'test/mocha/**/*.js'],
                tasks: ['mochaTest', 'karma:unit']
            }
        },
我不想在监视任务中运行测试选项,我只想在指定该选项时运行它,就像在我的测试任务中一样:

grunt.registerTask('test-w', ['mochaTest', 'karma:unit', 'watch:test']);
我尝试在并发任务中执行此操作:

tasks: ['nodemon', 'watch:js:html:css']

工作不顺利:

只需同时指定所有必要的监视任务:


把测试从手表上拿出来。你能把你的整个文件拿出来吗?这个问题听起来很奇怪。给你,一点也不奇怪,我完全明白。不幸的是,除了将app/***/.js从您的监视:测试任务中删除外,我不知道解决方案。如果有办法指定要运行的命令:在我执行tdd时,我希望有一个监视程序,用于在每次更改时运行我的测试。但我不想让它在我在浏览器中运行我的应用程序时运行测试。我以前试过,但它抱怨“watch:js”已经在使用端口35729。我意识到这是因为每个配置js、html和css都设置了livereload:true。我通过制作一个单独的配置来解决这个问题,所有的配置都监视所有的东西,而不是将它们分开。谢谢
tasks : ['nodemon', 'watch:js', 'watch:html', 'watch:css']