首页 > 解决方案 > 将 create-react-app 部署到 Plesk Onyx

问题描述

这个问题不会特别详细,因为这个问题非常基本,并且与 Plesk Onyx 如何实现节点支持的限制有关。

我正在尝试将使用 create-react-app 创建的反应应用程序部署到安装了 Plesk Onyx 的服务器上托管的域。我显然不能乱搞核心服务器,因为我可能会破坏其他域。因此,我需要以 Plesk 正确处理的方式安装此应用程序。我遇到的问题是我没有找到如何在任何地方执行此操作的指南。

Plesk 需要一个非常不灵活的项目结构,它与 create-react-app 强加的结构完全不同。例如,Plesk 要求文档根目录是应用程序根目录的子节点,这与 create-react-app 设置项目的方式完全相反。

我没有在这里显示代码,因为这是一个部署问题,而不是代码问题,并且涉及项目的结构以及如何将圆钉塞入方孔中。

标签: reactjscreate-react-appplesk-onyx

解决方案


我遇到了类似的问题,但我认为我有某种解决方法。我实际上并没有尝试过这是否有效或在 Plesk Onyx 中是否有效。

基本上我想把一个 create-react-app 放到一个基于 plesk onyx 的主机上并运行npm start,最终导致 . react-scripts start,我意识到 Plesk 没有能力做到这一点。Plesk 不是 VPS...

取而代之的是,Plesk 运行一个 js 脚本文件来执行服务器,例如App.jsor server.js,它可以通过 Plesk NodeJS 控制面板进行设置。

为此,我express通过运行安装: npm install express --save 并制作了一个server.js包含以下代码的文件:

const express = require('express');
const bodyParser = require('body-parser')
const path = require('path');
const app = express();
app.use(express.static(path.join(__dirname, 'build')));

app.get('/', function (req, res) {
  res.sendFile(path.join(__dirname, 'build', 'index.html'));
});

app.listen(process.env.PORT || 8080);

我从这里得到了代码: https ://dev.to/loujaybee/using-create-react-app-with-express

然后我跑去npm run build创建一个生产版本,最后是node server.js. 我的应用程序(react 教程中的一个简单井字游戏)在 localhost 端口 8080 中可用。

根页面

如果我成功了,我会给你一个更新。


推荐阅读