一个应用程序在端口3000上运行,而我想在默认端口的另一个端口上运行另一个应用程序。我如何在Reaction Next.js中更改这一点。我的Package.js脚本是
"scripts": {
"test": "echo "Error: no test specified" && exit 1",
"dev": "next",
"build": "next build",
"start": "next start"
},
启动脚本命令为npm run dev
9条答案
按热度按时间7ajki6be1#
这对我很管用
rkue9o1l2#
bzzcjhmw3#
只需执行以下操作:
yquaqz184#
默认情况下,应用程序将在http://localhost:3000启动。可以使用-p更改默认端口,如下所示:
或使用PORT环境变量:
请注意,我使用的是npx而不是npm
您还可以将主机名设置为不同于默认的0.0.0.0,这对于使应用程序可用于网络上的其他设备非常有用。可以使用-H更改默认主机名,如下所示:
如果出现端口已在使用的错误,您可以在Windows上执行以下操作来解决该问题
uwopmtnx5#
有两种方法可以做到这一点:
在
package.json
文件中,将-p 8080
添加到dev/start脚本以在端口8080上启动服务器:或者,如果您不想在
package.json
文件中对此进行硬编码,可以使用ENV Variable Port启动该脚本。有关更多信息,请访问Vercel文档。
70gysomp6#
使用
yarn
,您可以轻松传递任何参数:yarn dev -p 8080
或yarn dev --port=8080
。使用
npm
使用--
传递参数:npm run dev -- -p 8080
ar7v8xwq7#
通过.env文件使用环境变量的解决方法
多亏了GitHub的这条评论
为了发展
1.在项目根目录中为您的开发环境创建脚本,例如
dev-server.js
1.然后您可以在
.env
中设置一个自定义端口,如下所示:PORT=3002
1.更新
package.json
中的dev命令以使用dev-server.js
脚本,如下所示:1.运行
npm run dev
,NextJS应用程序将在端口3002启动。用于生产
1.在项目根目录中为您的生产环境创建脚本,例如
prod-server.js
1.然后您可以在
.env
中设置一个自定义端口,如下所示:PORT=3002
1.更新
package.json
中的启动命令以使用prod-server.js
脚本,如下所示:1.运行
npm run start
,NextJS应用程序将在端口3002上启动。(不要忘记在使用npm run build
之前构建项目)dotenv应该通过
npm install dotenv
安装,这是必需的,并在脚本中进行了配置,如前面的代码片段所示。GitHub的评论中写道:
有些主机提供商只会强迫我们拥有server.js/index.js文件。上述解决方案的好处是它不需要任何额外的依赖项。
ax6ht2ek8#
在NPM脚本中设置端口号根本不是一个好主意。
在终端上,您可以使用以下命令传递端口号
a9wyjsp79#
通常,端口是特定于环境的,因此它不应该转到git存储库。因此,最佳做法是在
.env.local
中定义它,并且可以使用以下启动脚本从那里读取它:使用
set -a
将导出源环境变量,而Next.JS启动脚本将使用PORT
环境变量(如果已定义)。请注意,此脚本在Windows中不起作用。