我的项目基于create-react-app。npm start或者yarn start默认情况下将在端口 3000上运行应用程序,并且在 package.json 中没有指定端口的选项。
在这种情况下,如何指定我选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005,另一个在3006
我的项目基于create-react-app。npm start或者yarn start默认情况下将在端口 3000上运行应用程序,并且在 package.json 中没有指定端口的选项。
在这种情况下,如何指定我选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005,另一个在3006
如果你不想设置环境变量,另一种选择是修改scriptspackage.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