我是nodejs/reactjs世界的新手,所以如果我的问题听起来很傻,我很抱歉。我在摆弄react。js。

每当我做一个npm启动,它总是运行在localhost:8080。

如何将其更改为在0.0.0.0:8080上运行以使其可公开访问?我一直试图阅读上述回购中的源代码,但未能找到执行此设置的文件。

此外,要补充的是-我如何使它在端口80上运行,如果这是可能的?


当前回答

对我来说:改变监听主机有效:

.listen(3000, 'localhost', function (err, result) {
        if (err) {
            console.log(err);
        }
        console.log('Listening at localhost:3000');
    });

改为:

.listen(3000, '0.0.0.0', function (err, result) {
        if (err) {
            console.log(err);
        }
        console.log('Listening at localhost:3000');
    });

服务器开始监听0.0.0.0

其他回答

配置webpack(在webpack.config.js中):

devServer: {
  // ...
  host: '0.0.0.0',
  port: 80,
  // ...
}

我就是这么做的,而且看起来效果不错。

在webpack.config.js文件中添加以下内容:

devServer: {
    inline:true,
    port: 8008
  },

显然,您可以使用与其他端口不冲突的任何端口。我提到冲突问题只是因为我花了大约4个小时。与问题作斗争,却发现我的服务运行在同一个端口上。

这种方法对我很管用。我猜这应该对你有用。

使用此命令运行webpack-dev

webpack-dev-server --host 0.0.0.0 --port 80

在webpack.config.js中设置

entry: [
    'webpack-dev-server/client?http://0.0.0.0:80',
     config.paths.demo
 ]

注意:如果您正在使用热加载,则必须这样做。

使用此命令运行webpack-dev

webpack-dev-server --host 0.0.0.0 --port 80

在webpack.config.js中设置

entry: [
    'webpack-dev-server/client?http://0.0.0.0:80',
    'webpack/hot/only-dev-server',
     config.paths.demo
 ],

....
plugins:[new webpack.HotModuleReplacementPlugin()]

对我来说:改变监听主机有效:

.listen(3000, 'localhost', function (err, result) {
        if (err) {
            console.log(err);
        }
        console.log('Listening at localhost:3000');
    });

改为:

.listen(3000, '0.0.0.0', function (err, result) {
        if (err) {
            console.log(err);
        }
        console.log('Listening at localhost:3000');
    });

服务器开始监听0.0.0.0

如果你在用“create-react-app”创建的React应用程序中,请转到你的包中。Json和更改

“start”:“react-scripts start”,

……(unix)

"start": "PORT=80 response -scripts start",

或者…(赢)

"start": "set PORT=3005 && response -scripts start"