我一直在寻找如何设置Next.js应用程序的服务器端口的方法。我发现了2种方法:
1.硬编码到package.json文件中:
{“脚本”:{“dev”:“next dev -p 8012”,“build”:“下一次生成”,“开始”:“下一个开始-p 8012”,} }
1.从命令行:npm run dev -- -p 8012
或PORT=8012 npm run dev
我觉得这些都不好。第一种方法的问题是package.json是由git版本控制的。这意味着我必须在我的本地env上使用与生产环境相同的端口。我可能有其他程序在本地监听该端口。这对我来说很不方便。
第二种方法意味着我的记忆力非常好。我必须记住我想在本地以及生产,登台或任何其他环境中使用的端口。这也是不好的。
理想情况下,我希望在.env
文件中指定PORT。我试过了-不起作用。
有人遇到过这样的问题吗?
3条答案
按热度按时间nhjlsmyf1#
您可以使用以下启动脚本从
.env
文件中读取PORT
环境变量:使用
set -a
将导出源环境变量,Next.JS启动脚本将在PORT
环境变量中定义的端口启动服务器,如果.env
文件不存在或文件中没有定义PORT
,则不设置PORT
,使用默认端口,注意此脚本在Windows中不起作用。kdfy810k2#
Next.js目前不支持在
.env
文件(See discussion)中使用PORT
环境变量。可能适用于您的用例的两个选项是:
1.在您的环境中导出
$PORT
。但是它也有缺点,如链接讨论中所指出的。1.创建一个自定义启动脚本,从
.env
文件中读取端口。一个二个一个一个
efzxgjgh3#
在windows上,我找不到一个简单的方法来使用
npm run start
和设置端口。我的解决方法是使用不同的脚本。