我的项目是基于创建-反应-应用程序。NPM启动或yarn启动默认将在端口3000上运行应用程序,在package.json中没有指定端口的选项。
在这种情况下,如何指定自己选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005,另一个是3006
我的项目是基于创建-反应-应用程序。NPM启动或yarn启动默认将在端口3000上运行应用程序,在package.json中没有指定端口的选项。
在这种情况下,如何指定自己选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005,另一个是3006
当前回答
你可以在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",
...
}
其他回答
如果能够指定不是3000的端口(作为命令行参数或环境变量),那就太好了。
现在,这个过程相当复杂:
运行npm Run eject 等待它完成 编辑scripts/start.js,用你想使用的任何端口找到/替换3000 编辑config/webpack.config.dev.js并执行同样的操作 npm开始
在我的例子中,我的react项目有两个文件:.env和.env.development。
我把这个添加到.env.development中,让它与npm start命令一起工作,用于开发:
PORT=3001
您可以指定一个名为PORT的环境变量来指定服务器将在其上运行的端口。
$ export PORT=3005 #Linux
$ $env:PORT=3005 # Windows - Powershell
如果你在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 .
这适用于Linux基本操作系统
"start": "PORT=3500 react-scripts start"