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

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


当前回答

如果你已经做了npm run eject,去scripts/start.js并在const DEFAULT_PORT = parseInt(process.env. js)中更改port。端口,10)|| 3000;(在本例中为3000)到您想要的任何端口。

其他回答

您可以在启动应用程序时找到默认端口配置

yourapp/scripts/start.js

向下滚动并将端口更改为您想要的任何端口

const DEFAULT_PORT = parseInt(process.env.PORT, 10) || 4000;

希望这对你有所帮助;)

对于我的windows朋友们,我发现了一种改变ReactJS端口的方法,可以在任何你想要的端口上运行。在运行服务器之前,请转到

 node_modules/react-scripts/scripts/start.js

在其中,搜索下面的行并将端口号更改为所需的端口

 var DEFAULT_PORT = process.env.PORT || *4000*;

这样就可以开始了。

在espackage旁边的主目录中创建一个名为.env的文件。将PORT变量设置为所需的端口号。

例如:

.env

PORT=4200

您可以在这里找到该操作的文档:https://create-react-app.dev/docs/advanced-configuration

如果你在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 .

如果你已经做了npm run eject,去scripts/start.js并在const DEFAULT_PORT = parseInt(process.env. js)中更改port。端口,10)|| 3000;(在本例中为3000)到您想要的任何端口。