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

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


当前回答

对于windows操作系统,可直接在cmd命令下执行此命令

set PORT=3001 && npm start

其他回答

试试这个:

npm start port=30022

对于windows操作系统,可直接在cmd命令下执行此命令

set PORT=3001 && npm start

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

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

如果不想设置环境变量,另一个选项是修改包的脚本部分。json:

"start": "react-scripts start"

to

Linux(在Ubuntu 14.04/16.04上测试)和MacOS(在MacOS Sierra 10.12.4上由aswin-s测试):

"start": "PORT=3006 react-scripts start"

或者(可能)IsaacPak的更通用的解决方案

"start": "export PORT=3006 react-scripts start"

Windows JacobEnsor的解决方案

"start": "set PORT=3006 && react-scripts start"

跨环境图书馆在任何地方都有效。详见Aguinaldo Possatto的回答

更新是因为我的回答很受欢迎:目前我更喜欢使用保存在.env文件中的环境变量(以方便和可读的形式存储不同部署配置的变量集很有用)。别忘了加上*。如果你仍然将秘密存储在。Env文件中,Env转换为。gitignore。下面是为什么在大多数情况下使用环境变量更好的解释。以下是为什么在环境中存储秘密是一个坏主意的解释。

在Windows中可以通过两种方式实现。

在“\node_modules\react-scripts\scripts\start.js”下搜索 “DEFAULT_PORT”并添加所需的端口号。 例如:const DEFAULT_PORT = parseInt(process.env. port = parseInt)端口,10)|| 9999; 在包中。Json,追加下面的行。 "start": "set PORT=9999 && response -scripts start" 然后使用NPM start启动应用程序。它将在9999启动应用程序 端口。