我的项目基于create-react-app。npm start
或者yarn start
默认情况下将在端口 3000上运行应用程序,并且在 package.json 中没有指定端口的选项。
在这种情况下,如何指定我选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005
,另一个在3006
我的项目基于create-react-app。npm start
或者yarn start
默认情况下将在端口 3000上运行应用程序,并且在 package.json 中没有指定端口的选项。
在这种情况下,如何指定我选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005
,另一个在3006
如果你不想设置环境变量,另一种选择是修改scripts
package.json的部分:
"start": "react-scripts start"
到
Linux(在 Ubuntu 14.04/16.04 上测试)和MacOS(由 @aswin-s 在 MacOS Sierra 10.12.4 上测试):
"start": "PORT=3006 react-scripts start"
或者(可能是)@IsaacPak 提供的更通用的解决方案
"start": "export PORT=3006 react-scripts start"
Windows @JacobEnsor 解决方案
"start": "set PORT=3006 && react-scripts start"
cross-env lib无处不在。有关详细信息,请参阅 Aguinaldo Possatto 的回答
由于我的答案的流行而更新:目前我更喜欢使用保存在.env
文件中的环境变量(用于以deploy
方便和可读的形式存储不同配置的变量集)。不要忘记添加*.env
到.gitignore
如果你还在存储你的秘密.env
文件。这里解释了为什么在大多数情况下使用环境变量更好。这是为什么在环境中存储秘密是个坏主意的解释。
这是完成此任务的另一种方法。
.env
在您的项目根目录创建一个文件并在那里指定端口号。喜欢:
PORT=3005
.env
此外package.json
,在主目录中创建一个具有名称的文件,并将PORT
变量设置为所需的端口号。
例如:
.env
PORT=4200
您可以在此处找到此操作的文档:https : //create-react-app.dev/docs/advanced-configuration
您可以使用cross-env来设置端口,它适用于 Windows、Linux 和 Mac。
yarn add -D cross-env
然后在 package.json 中的开始链接可能是这样的:
"start": "cross-env PORT=3006 react-scripts start",
您可以指定一个名为的环境变量PORT
来指定服务器将运行的端口。
$ export PORT=3005 #Linux
$ $env:PORT=3005 # Windows - Powershell