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

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


当前回答

对于windows,使用cmd

set PORT=3001 && npm start

其他回答

试试这个:

npm start port=30022

总之,我们有三种方法来实现这一目标:

设置名为“PORT”的环境变量 修改package.json中“scripts”部分的“start”键 创建一个.env文件,并将PORT配置放在其中

最可移植的方法是最后一种方法。但正如其他帖子所提到的,将.env添加到.gitignore中,以避免将配置上传到公共源存储库。

更多细节:这篇文章

你可以在package.json中修改你的脚本:

- MacOs:

"scripts": {
     "start": "PORT=9002 react-scripts start",
     "build": "react-scripts build",
     ...     
}

在窗户

  "scripts": {
      "start": "set PORT=9002 && react-scripts start",
      "build": "react-scripts build",
      ...
}

您需要更新您的软件包。json来指定不同的PORT

在脚本部分,替换start命令如下:—

确保所提到的PORT可以自由监听

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

您的应用程序将从http://localhost:3001开始

谢谢

如果你在Dockerfile中运行npm start,你不能在docker运行中映射端口,比如做一些类似-p 3001:3000的事情,这是有效的:

FROM node

ENV PORT=3001

# whatever here, COPY .. etc.

CMD npm start

或者你可以在docker build中传递端口号作为参数:

FROM node

ARG PORT=${PORT}
ENV PORT=${PORT}

# whatever here, COPY .. etc.

CMD npm start

在docker build中使用——build-arg

docker build --build-arg PORT=3001 .