Grunt connect或grunt发球?

时间:2015-08-12 04:08:14

标签: gruntjs

我不太了解两者之间的区别。从描述来看,似乎两者都是用于打开网络服务器。

如果我在gruntfile.js上使用了具有以下配置的grunt-serve插件

serve: {
        options: {
            port: 9000
        }
    }

我可以在指定端口打开网络服务器,但我必须在浏览器上手动打开网络服务器(不知道如何在默认浏览器上自动打开它)。 Web服务器运行正常,可以毫无问题地加载JSON文件。

然而,当我尝试使用grunt connect插件时,使用以下配置

connect: {
        server: {
            options: {
                port: 9000,
                livereload: 35729,
                hostname: 'localhost',
                keepalive:true,
                open:true
            }
        }
    },

    open: {
        dev: {
            url: 'http://localhost:<%= connect.server.options.port %>/index.html'
        }
    }

grunt.registerTask('serve', function (target) {
    grunt.task.run([
        'connect',
        'open:dev'
    ]);
});

我可以在默认浏览器的指定端口自动打开一个Web服务器,但问题是,它无法加载JSON数据,就像grunt serve一样。

我想让网络服务器像Yeoman一样工作,在运行命令grunt serve时,它将连接到网络服务器并在我的默认浏览器上自动打开它,并且可以加载我所有的PHP / json文件。看起来像grunt-serve插件是正确的插件,但我确信grunt-connect也可以做与grunt-serve相同的事情。

1 个答案:

答案 0 :(得分:0)

根据https://github.com/gruntjs/grunt-contrib-connect,连接任务使服务器在有限的时间内可用,以便运行其他任务,例如单元测试。任务完成后,服务器将停止。如您所示,有一个keepalive选项可以防止服务器停止。 Connect对于连接其他域(如REST API)上的资源也很有用。通常,由于源策略相同,浏览器会拒绝此操作 - 请参阅https://github.com/drewzboto/grunt-connect-proxy

因此,对于开发,我会使用标准模式“grunt serve”并连接以测试和代理另一个域上的资源:-)