我的项目是基于创建-反应-应用程序。NPM启动或yarn启动默认将在端口3000上运行应用程序,在package.json中没有指定端口的选项。
在这种情况下,如何指定自己选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005,另一个是3006
我的项目是基于创建-反应-应用程序。NPM启动或yarn启动默认将在端口3000上运行应用程序,在package.json中没有指定端口的选项。
在这种情况下,如何指定自己选择的端口?我想同时运行这个项目的两个(用于测试),一个在端口3005,另一个是3006
当前回答
我只是在项目的根目录中创建了.env,并更改PORT=3001
其他回答
如果能够指定不是3000的端口(作为命令行参数或环境变量),那就太好了。
现在,这个过程相当复杂:
运行npm Run eject 等待它完成 编辑scripts/start.js,用你想使用的任何端口找到/替换3000 编辑config/webpack.config.dev.js并执行同样的操作 npm开始
在你的包裹里。在脚本中使用——port 4000或set port =4000,如下例所示:
包中。json (Windows):
"scripts": {
"start": "set PORT=4000 && react-scripts start"
}
包中。json (Ubuntu):
"scripts": {
"start": "export PORT=4000 && react-scripts start"
}
这里有另一种方法来完成这项任务。
在项目根目录下创建一个.env文件,并指定端口号。如:
PORT=3005
只需在webpack.config.js中更新一点:
devServer: {
historyApiFallback: true,
contentBase: './',
port: 3000 // <--- Add this line and choose your own port number
}
然后再次运行NPM start。
如果不想设置环境变量,另一个选项是修改包的脚本部分。json:
"start": "react-scripts start"
to
Linux(在Ubuntu 14.04/16.04上测试)和MacOS(在MacOS Sierra 10.12.4上由aswin-s测试):
"start": "PORT=3006 react-scripts start"
或者(可能)IsaacPak的更通用的解决方案
"start": "export PORT=3006 react-scripts start"
Windows JacobEnsor的解决方案
"start": "set PORT=3006 && react-scripts start"
跨环境图书馆在任何地方都有效。详见Aguinaldo Possatto的回答
更新是因为我的回答很受欢迎:目前我更喜欢使用保存在.env文件中的环境变量(以方便和可读的形式存储不同部署配置的变量集很有用)。别忘了加上*。如果你仍然将秘密存储在。Env文件中,Env转换为。gitignore。下面是为什么在大多数情况下使用环境变量更好的解释。以下是为什么在环境中存储秘密是一个坏主意的解释。