Reactjs 将MERN应用程序部署到Azure而不是Heroku的方法

Reactjs 将MERN应用程序部署到Azure而不是Heroku的方法,reactjs,azure,deployment,mern,Reactjs,Azure,Deployment,Mern,我想知道如何将我的mern应用程序部署到Azure。我在谷歌上搜索了好几天,这让我非常沮丧。当我构建应用程序时,它显然只构建客户端。如何将整个项目上传到Azure并运行应用程序的客户端和服务器端 我想避开Heroku,直接从Azure运行我的项目 有什么工具可以用于构建吗 非常感谢 为了使MERN应用程序在Azure上工作,您必须配置应用程序以通过express显示静态react构建 编辑您的express server.js并添加以下内容: const path = require("path

我想知道如何将我的mern应用程序部署到Azure。我在谷歌上搜索了好几天,这让我非常沮丧。当我构建应用程序时,它显然只构建客户端。如何将整个项目上传到Azure并运行应用程序的客户端和服务器端

我想避开Heroku,直接从Azure运行我的项目

有什么工具可以用于构建吗


非常感谢

为了使MERN应用程序在Azure上工作,您必须配置应用程序以通过express显示静态react构建

编辑您的express server.js并添加以下内容:

const path = require("path"); // on top

// Serve Static assests if in production
if (process.env.NODE_ENV === "production") {
  app.use(express.static("client/build")); // change this if your dir structure is different
  app.get("*", (req, res) => {
    res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
  });
}
然后,将此脚本行添加到express package.json中:

注意:编辑此文件以符合目录结构


就这样,现在将您的应用程序上载到Azure,并在Azure应用程序设置的环境变量中将您的express端口设置为80。

谢谢!这是否意味着server.js需要在根目录中?因为我目前在根目录中有一个文件夹服务器端和一个文件夹客户端。在这之后,我只需要构建客户端并将其部署到服务器上?最好是将服务器保持在根目录下。您不需要手动构建react应用程序,当Azure运行npm run Azure时,它将为您执行此操作。您希望使用哪种Azure服务来部署您的MERN应用程序?Azure WebApp或VM?Azure WebApp:
"scripts": {
    "start": "node server.js",
    "azure": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client && npm run start"
  }