如何在package.json中通过dotenv-cli使用环境变量配置生产端口?
解决React生产环境通过.env指定端口启动的问题
你当前的脚本写法无法正确读取.env里的PORT变量,以下是两种可行的修改方案:
方案一:通过命令执行结果传递端口值
修改package.json中的scripts部分,把start:prod改成:
"scripts": { "envport": "dotenv -p PORT", "start:prod": "serve -s build -l $(dotenv -p PORT)", "build:prod": "react-scripts build", "prod": "npm run build:prod && npm run start:prod" }
这里用$(dotenv -p PORT)让shell先执行命令获取端口值,再传递给serve的-l参数。
方案二:直接加载环境变量后引用
用dotenv --先加载.env中的所有变量,之后直接用$PORT引用:
"scripts": { "envport": "dotenv -p PORT", "start:prod": "dotenv -- serve -s build -l $PORT", "build:prod": "react-scripts build", "prod": "npm run build:prod && npm run start:prod" }
这种写法更直观,dotenv --会先把.env里的变量注入到当前shell环境,后续的serve命令就能直接使用$PORT。
两种方案都能实现通过.env指定的端口启动生产环境服务,推荐方案二,可读性更强。
内容的提问来源于stack exchange,提问作者ArtBindu
相关产品推荐
相关产品推荐

