我们如何在 React 中为每个本地环境动态 运行 不同的启动脚本?

How can we dynamically run different start scripts per local environment in React?

作为我们开发环境的一部分,我们选择在端口 3006 上启动 React,而不是通常的端口 3000。

在 Mac 上,您可以通过将以下内容添加到 package.json 来实现此目的。

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

但是在 Windows 上,您必须添加以下内容。

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

由于我们有开发人员同时使用两台机器(Mac 和 Windows),是否有处理每台机器上不同启动脚本的好方法?

一种方法是这样做的:

"scripts" : {
    "start-windows" : "PORT=3006 react-scripts start",
    "start-mac" : "set PORT=3006 && react-scripts start"
}

您可以通过将其安装为开发依赖项来使用 cross-env 包,例如

npm install -S cross-env

yarn add -D cross-env

然后你可以简单地在package.json中写你的命令如下

"scripts": {
    "start": " cross-env PORT=3006 react-scripts start",
}

现在这将适用于 Windows、linux 甚至基于 Mac 的系统

请看this

基本上只需在项目的根目录中添加 .env 文件并添加

PORT=3006

当然这可以处理例如link 中指定的 PORT 和其他配置,如果您需要除此之外的其他配置,则需要使用 cross-env.

之类的配置