6

我可能应该首先指出我是没有经验的用户,我的问题是除了空字符串('')、'0.0.0.0'和'localhost'之外, 'hostname'属性不能分配任何值。我得到:致命错误:getaddrinfo ENOTFOUND。我究竟做错了什么?

如果做对了,我可以更改我通常在地址栏中输入的地址,所以我可以输入 'example.com' 或类似的东西来代替“localhost”。

正如我上面提到的,我为它分配了不同的值,但其中只有三个有效。那么为什么这个'*'不起作用。

这是我的Gruntfile.js

module.exports = function( grunt ) {
    grunt.initConfig({
        pkg: grunt.file.readJSON('package.json'),   

        watch: {
            scripts: {
                files: ['*.js'],
                options: {
                    livereload: true
                }
            },
            markup: {
                files: ['*.html'],
                options: {
                    livereload: true
                }
            },
            stylesheets: {
                files: ['*.css'],
                options: {
                    livereload: true
                }
            }
        },
        connect: {
            server: {
                options: {
                    hostname: '*',
                    port: 2000, 
                    base: '.'
                }
            }
        }
    });

    grunt.loadNpmTasks('grunt-contrib-watch');
    grunt.loadNpmTasks('grunt-contrib-connect');

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

};

在 Ubuntu 12.04 64 位上工作

NodeJs 0.10.17

npm 1.3.8

GruntJs 0.4.1

grunt-contrib-connect 0.3.0

4

1 回答 1

11

这是因为 grunt 正在尝试作为Server绑定到该地址。不能作为服务器绑定到任意 IP 地址或域名。

  • 0.0.0.0 表示监听绑定到该主机的所有 IP 地址
  • 127.0.0.1/localhost 表示绑定到本地适配器
  • nnn.nnn.nnn.nnn 绑定到特定的 IP 地址(它必须在本地解析)
于 2013-08-24T21:38:57.847 回答