如何从 Express 服务器启动反应脚本?

Ger*_*áth 2 express reactjs

我想运行一个由快速服务器提供服务的反应应用程序。尽管这不是解决方案,但我想要获得的效果是app.use("/", "react-scripts start"),所以如果服务器收到请求"/",它会启动反应应用程序,并提供其文件。

我读到了构建应用程序的解决方案,并提供bundle.js,或者只是将带有服务器URL的代理添加到客户端应用程序的package.json,但这不是我想要的,并且没有找到任何类似的效果我想赚。

我不确定它的react-scripts start作用是什么,以及它是如何工作的,但我需要它的原因是我不想重新启动整个服务器,并等到每次我在前端更改某些内容时等到应用程序构建。

有任何想法吗?

Ind*_*til 6

react-scripts start设置开发环境并启动服务器以及热模块重新加载。基本上,create-react-app 可以帮助您启动项目,而无需进入复杂的 WebPack 配置。

运行react-scripts build以将项目文件构建到构建文件夹中,然后,您可以创建一个使用 Express 为构建文件夹提供服务的 server.js 文件。

服务器.js

const path = require('path');
const express = require('express');
const app = express();
const publicPath = path.join(__dirname, 'build');

app.use(express.static(publicPath));

app.get('*', (req, res) => {
  res.sendFile(path.join(publicPath, 'index.html'));
});

app.listen(3000, () => {
  console.log('Server is up!');
});
Run Code Online (Sandbox Code Playgroud)

运行node server.js以启动您的服务器。