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

时间:2019-07-11 07:39:14

标签: reactjs azure deployment mern

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

我想避免使用Heroku,而直接从Azure运行我的项目。

我可以使用任何工具进行构建吗?

非常感谢!

1 个答案:

答案 0 :(得分:0)

为了使MERN应用程序在Azure上运行,您必须配置您的应用程序以通过express显示您的静态React构建。

编辑快递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"));
  });
}

然后,将此脚本行添加到您的快速package.json中:

"scripts": {
    "start": "node server.js",
    "azure": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client && npm run start"
  }

注意:编辑此内容以满足您的目录结构。

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