Lumen - 服务于 ReactJS 项目
Lumen - Serving ReactJS Project
我正在为一个项目开发 Lumen/React 应用程序。 Lumen 显然提供了 API 而 React 正在生成用户界面。我现在正尝试通过 Lumen 为我的 React 应用程序提供服务,这样它就可以接管所有用户界面工作。
我希望尽可能保留应用程序的客户端部分,以便将来如果我愿意,可以轻松地从 Lumen 切换到 Koa 或任何其他后端。我的应用程序结构如下所示:
如您所见,目前 React 应用程序是 repo 的子文件夹。这是我在以前的 Koa 项目中做过的事情,但是,由于 Nodejs 网络服务的性质,它使得提供这些文件变得容易得多。
根据我目前的测试,我认为提供文件的最佳方式是从客户端文件夹读取 index.html
的内容,/build 或 /public 取决于关于是否启用生产。然后我需要将对 Web 服务器设置的 public 文件夹之外的资产的请求重定向到客户端文件夹中的 /build 或 /src,这取决于它是否在生产中。
我的问题是:
A) 这是否可能以安全可靠的方式进行?
B) 这是通过 Lumen 为 React 应用程序提供服务的最佳方式吗?
可能不是最好的解决方案,但我只是编写了自己的脚本,以便在构建脚本 运行 之后将构建的版本部署到 Lumen 文件。
可以使用 React 代理选项进行开发。
const copydir = require('copy-dir');
const fs = require('fs');
copydir.sync('./build', '../public');
fs.readFile('./build/index.html', 'utf8', function (err, data) {
if (err) throw err;
fs.writeFile ('../resources/views/index.php', data, function(err) {
if (err) throw err;
});
});
我正在为一个项目开发 Lumen/React 应用程序。 Lumen 显然提供了 API 而 React 正在生成用户界面。我现在正尝试通过 Lumen 为我的 React 应用程序提供服务,这样它就可以接管所有用户界面工作。
我希望尽可能保留应用程序的客户端部分,以便将来如果我愿意,可以轻松地从 Lumen 切换到 Koa 或任何其他后端。我的应用程序结构如下所示:
如您所见,目前 React 应用程序是 repo 的子文件夹。这是我在以前的 Koa 项目中做过的事情,但是,由于 Nodejs 网络服务的性质,它使得提供这些文件变得容易得多。
根据我目前的测试,我认为提供文件的最佳方式是从客户端文件夹读取 index.html
的内容,/build 或 /public 取决于关于是否启用生产。然后我需要将对 Web 服务器设置的 public 文件夹之外的资产的请求重定向到客户端文件夹中的 /build 或 /src,这取决于它是否在生产中。
我的问题是:
A) 这是否可能以安全可靠的方式进行?
B) 这是通过 Lumen 为 React 应用程序提供服务的最佳方式吗?
可能不是最好的解决方案,但我只是编写了自己的脚本,以便在构建脚本 运行 之后将构建的版本部署到 Lumen 文件。
可以使用 React 代理选项进行开发。
const copydir = require('copy-dir');
const fs = require('fs');
copydir.sync('./build', '../public');
fs.readFile('./build/index.html', 'utf8', function (err, data) {
if (err) throw err;
fs.writeFile ('../resources/views/index.php', data, function(err) {
if (err) throw err;
});
});