我的项目是基于创建-反应-应用程序。NPM启动或yarn启动默认将在端口3000上运行应用程序,在package.json中没有指定端口的选项。

在这种情况下,如何指定自己选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005,另一个是3006


当前回答

在Windows上的Powershell中(以管理员身份运行):

(cd到你的CRA应用程序根文件夹)

env:港= 3002元;npm起飞

其他回答

编辑您的项目/包。json文件。

进入脚本部分。将开始键对应的值更新为以下内容。

"start": "export PORT=4000;react-scripts开始”

现在你的React应用程序将在http://localhost:4000/上运行

注意:您可以使用任何端口号,但最好避免众所周知的端口号,如22,21,80等。

如果能够指定不是3000的端口(作为命令行参数或环境变量),那就太好了。

现在,这个过程相当复杂:

运行npm Run eject 等待它完成 编辑scripts/start.js,用你想使用的任何端口找到/替换3000 编辑config/webpack.config.dev.js并执行同样的操作 npm开始

编辑webpack.config.js并添加你想要在其上运行的端口。这就是你要找的东西:

’devServer: 港口:3005。 historyApiFallback: true, ),

and

输出:{ publicPath:“http://localhost: 3005 /”, },

在我的例子中,我的react项目有两个文件:.env和.env.development。

我把这个添加到.env.development中,让它与npm start命令一起工作,用于开发:

PORT=3001

您可以指定一个名为PORT的环境变量来指定服务器将在其上运行的端口。

$ export PORT=3005 #Linux
$ $env:PORT=3005 # Windows - Powershell