【问题标题】:grunt-php task springing open multiple browser instancesgrunt-php 任务弹出多个浏览器实例
【发布时间】:2014-03-07 07:24:40
【问题描述】:

我正在构建一个 Gruntfile.js。 我正在尝试创建响应 php 请求的任务。

其他任务包括实时编译 compass/sass 和实时重新加载。 我遇到了一个有趣的问题:

当我启动 grunt 时,我可以在终端中看到监视任务正在运行,并且 php 服务器正在运行:我在终端中收到有关某些文件未到位的消息。

现在事情是这样的……在我开始咕噜咕噜几秒钟后,firefox 窗口开始打开。 (我在启动任务时根本没有运行firefox。我一般使用chromium和chrome)。

新窗口不断打开。有时会弹出有关 Firefox 崩溃的 ff 消息。我还会弹出窗口,告诉我我的 ff 配置文件无法访问 - 如果我在 ff 已经运行时尝试从终端运行“firefox”,这是我所期望的。

它们不断弹出,直到我停止咕噜声。当我在终端按 Ctrl-c 停止任务时,它们都会立即关闭。

这可能是什么原因造成的?

这是我的 gruntfile

module.exports = function (grunt){
grunt.initConfig({

    compass : {
        dist : {
            options : {
                cssDir : 'css',
                sassDir : 'sass',
                debugInfo : true
            }
        }
    },

php :{      
    dist : { 
    options : {
        keepalive : true,
        port: 9000
    }
    },
    watch : {
    files : ['*.html',  '*.php',  'js/*', 'sass/*', 'css/*'],
    tasks : ['compass'],
    options : {
                livereload: true
    }
        }           
},      

});

grunt.loadNpmTasks('grunt-php');
grunt.loadNpmTasks('grunt-contrib-watch');    
grunt.loadNpmTasks('grunt-contrib-compass');   
grunt.registerTask('default', ['php', 'watch']) ;

} ;

【问题讨论】:

    标签: gruntjs


    【解决方案1】:

    您的 watch 任务指定您要使用 livereload - 所以,这是(某种)预期的,对吧?

    看这里:

    【讨论】:

    • 不是,不是。我之前创建过调用 livereload 的监视任务,但我从未预料到或看到过这种行为。我不认为 livereload 是为了打开无数个浏览器窗口。
    • 同意。不过,如果您从手表选项中删除 livereload 会发生什么?根据结果​​,您能否简化您的测试用例,以便更容易重现 watch / livereload 中的(显然)错误?
    • 换一种说法:在我看来,firefox / livereload 配置错误 - 或者手表对 livereload 做了一些讨厌的事情。
    猜你喜欢
    • 2022-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多