代码之家  ›  专栏  ›  技术社区  ›  RDoonds

使用pm2在服务器上运行React build

  •  12
  • RDoonds  · 技术社区  · 8 年前

    我已使用

    react-scripts build
    

    它在App的根目录中生成了一个build\文件夹。 我正在使用运行生成\文件夹

    sudo serve -T -p 443 build/
    

    这将在HTTPS上成功运行我的React应用程序,因为我通过了 -T 但我需要使用任何可用的模块永远运行我的应用程序。我在研究节点模块 永远 & pm2 。 我试图通过以下方式使用pm2:

    sudo pm2 serve -T -p 443 build/
    

    它抛出:

    error: unknown option `-T'
    

    当我使用:

    sudo pm2 serve -p 443 build/
    

    它可以在控制台上运行,但我无法从URL访问我的应用程序

    [ec2-user@ip-10-XXX-XX-XXX UI]$ sudo pm2 serve -p 443 build/
    [PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
    [PM2] PM2 Successfully daemonized
    [PM2] Starting /usr/local/lib/node_modules/pm2/lib/API/Serve.js in fork_mode (1 instance)
    [PM2] Done.
    [PM2] Serving /var/www/html/UI/build on port 8080
    ┌─────────────────────────┬────┬──────┬───────┬────────┬─────────┬────────┬─────┬───────────┬──────┬──────────┐
    │ App name                │ id │ mode │ pid   │ status │ restart │ uptime │ cpu │ mem       │ user │ watching │
    ├─────────────────────────┼────┼──────┼───────┼────────┼─────────┼────────┼─────┼───────────┼──────┼──────────┤
    │ static-page-server-8080 │ 0  │ fork │ 26609 │ online │ 0       │ 0s     │ 2%  │ 21.7 MB   │ root │ disabled │
    └─────────────────────────┴────┴──────┴───────┴────────┴─────────┴────────┴─────┴───────────┴──────┴──────────┘
     Use `pm2 show <id|name>` to get more details about an app
    

    有人能帮我吗? 或者,如果有任何其他方法可以永远在生产环境中运行您的react应用程序。

    5 回复  |  直到 4 年前
        1
  •  20
  •   bgran    8 年前

    您需要使用 pm2 运行任意二进制文件的JSON配置:

    app.config.json

    {
      apps : [
        {
          name      : "your-app",
          script    : "npx",
          interpreter: "none",
          args: "serve -p 8443 -T"
        }
      ]
    }
    

    要启动:

    pm2 start app.config.json
    

    interpreter: "none" 说明 pm2 在执行时不要将脚本视为JavaScript文件,而是将其视为普通二进制文件。

    如果你有 serve 二进制文件与应用程序配置位于同一目录中,您可以执行 提供 直接代替 npx

        2
  •  7
  •   JHM16    5 年前

    使用下面的命令对我有效

    首先构建react应用程序,然后在应用程序文件夹中单击此命令。

    pm2 serve build/ 3000 --name "react-build" --spa
    
        3
  •  3
  •   Nditah    7 年前

    @bgran提供了一个很好的解决方案。作为替代方案,我敢建议您可以添加以下内容 部署 到包中的脚本。json

    "deploy": "pm2 start ./server.sh --name yourAppName",
    

    然后在与包相同的目录中。json,创建可执行文件 服务器上海 :

    echo "Serving yourAppName!"
    serve -s build
    

    不要忘记制作服务器。通过运行以下命令生成可执行文件:

    chmod +x server.sh
    

    现在是派对时间!通过运行

    npm run deploy
    

    完成!

        4
  •  2
  •   desertnaut SKZI    5 年前

    如果您愿意使用pm2运行React项目,请尝试运行以下命令

    pm2 start --name <app name<app name>> npm -- start
    
        5
  •  1
  •   Tanmay Shrivastava    5 年前

    创造 跑上海 文件

    将下面的命令放入运行中。sh文件

    服务-s构建

    并保存。

    然后运行此命令。

    sudo pm2启动运行。sh—名称应用程序名称