我在React应用的App.js
中有这样一行代码:
console.log(process.env.NODE_ENV);
当在开发中运行应用程序时,我在控制台中看到了“开发”。
当我运行npm run build
,然后用serve -s build
服务我的应用程序时,我会在控制台中看到“生产”,这很棒。
但是当我使用nginx运行npm run build
并尝试使用pm2 start npm -- start
启动我的应用程序时,我仍然在控制台中看到“开发”。
我曾尝试在生产环境中使用serve
,这似乎是一个临时修复,但我的会话很快超时,整个应用程序断开连接。
我还尝试创建一个新的PM2配置文件,如下所示:
//ecosystem.config.js
module.exports = {
apps: [
{
name: 'my-react-app',
script: 'serve',
args: ['-s', 'build'],
instances: 1,
autorestart: true,
watch: false,
max_memory_restart: '1G',
env: {
NODE_ENV: 'production',
},
},
],
};
然后用pm2 start ecosystem.config.js
命令启动我的应用程序
但我仍然在控制台上看到了“发展”。
我也试过像下面的pm2 start --env production npm start
一样在pm2 start
命令中添加--env production
标志,但结果还是一样。
任何帮助或想法将非常感谢。
1条答案
按热度按时间at0kjp5o1#
问题解决了,感谢这个答案https://stackoverflow.com/a/74126120/13146212
关键是将
serve
与pm2
一起使用希望有一天这能帮助到别人