MERN 应用程序通过 PM2 在“开发”中运行

问题描述 投票:0回答:1

我的 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

启动我的应用程序

但我仍然在控制台中看到“开发”。

我也尝试将

--env production
标志添加到
pm2 start
命令中,如下
pm2 start --env production npm start
但结果仍然相同。

任何帮助或想法将不胜感激。

reactjs nginx build pm2 production
1个回答
0
投票

由于这个答案解决了问题https://stackoverflow.com/a/74126120/13146212

关键是使用

serve
pm2

希望有一天这能对其他人有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.