next.js 如何让下一个js读取我的环境文件?

xcitsw88  于 2023-06-05  发布在  其他
关注(0)|答案(2)|浏览(221)

我在这里发现,使用一个.env文件与PORT=....将告诉下一个js在服务期间改变端口。但它总是回落到3000。我不希望它被硬编码到我的package.json中。有什么提示吗?

6psbrbz9

6psbrbz91#

如果你绝对不想在你的package.json中使用它,那么我想可以使用dotenv-cli包将它整合在一起。这样,包含PORT的.env文件就可以在启动服务器之前加载到shell中。package.json中的脚本可能如下所示:

"scripts": {
  "start:dev": "dotenv -e .env.development next dev",
  "start": "dotenv -e .env.production next start"
}

本质上,dotenv命令加载-e选项指定的.env文件,并将其余的位置参数(例如,next dev)作为命令,使用从该文件加载的变量运行。
请记住,Next.js在启动后也会自己读取.env文件(它只是在端口被声明和服务器启动后才这样做)。它有一些默认路径可用于组织它们。

3mpgtkmj

3mpgtkmj2#

package.json:

"scripts": { 
   "dev": "next dev",
   "start": "next start",
},

解决方案:在启动Next.js服务器之前设置PORT
说明:如果你把它放在.env文件中,它不会使用它,因为它在启动服务器后读取文件。
示例PORT=8080 npm run devPORT=80 npm start

希望这有帮助!

相关问题