在生产中部署ReactJS应用程序(使用nodeJS后端)

时间:2018-03-22 18:41:39

标签: node.js reactjs web webpack deployment

我们的项目现已结束,我们只有两周的时间来回馈大学最后一年的学习项目。我们的老师告诉我们,现在开发阶段已经结束,我们必须将其部署到生产阶段。

我们使用ReactJS作为前端(托管在localhost:// 3000中)和NodeJS用于服务器/数据库管理(托管在localhost:// 3004中)。

到目前为止,我已经做了一些研究如何部署它(老师说理想情况下它是一个拉链,我们可以插入网页,就像一个HTML,它会工作)。

到目前为止,我还没有成功。很多人建议使用“webpack”进行管理,但我们最初没有对它进行配置,因为我们对reactJS没有任何线索,我不知道我们现在是否可以做到。我已经阅读了教程等,并尝试了NODE_ENV的一些东西,但到现在为止我遇到了错误。

任何人都可以帮助我吗?我的队友?

提前致谢!

3 个答案:

答案 0 :(得分:2)

要使用cli "traveled":{ "$gt":[ {"$size":{ "$filter":{ "input":"$content", "as":"c", "cond":{ "$and":[ {"$eq":["$$c.item",passengerId]}, {"$eq":["$$c.kind","User"]} ] } } }}, 0 ] } 部署反应式应用构建,首先需要在create-react-app中设置主机,因此在package.json添加此行

package.json

您的"homepage":"http://localhost/" ,assuming you will host your app on the root directory of your webserver 看起来像这样

package.json

然后在您的app文件夹中运行此命令

{
  "name": "nameofyourapp",
  "version": "0.1.0",
  "private": true,
  "homepage":"http://localhost/",
  "dependencies": {
    .....
  },
  "scripts": {
  ......
  }
}

然后复制build文件夹中的内容并将其粘贴到serveur的根目录中 你最终会得到像这样的文件

npm run build

之后您无法通过浏览器访问您的网络服务器:http://localhost/

答案 1 :(得分:1)

我假设你使用create-react-app来生成你的反应项目。我的文件夹结构如下:

  • 客户端(这是我的反应应用程序)
  • 配置
  • 控制器
  • 路由
  • 模型
  • index.js(express app在index.js中)
  • 的package.json

我曾经将我的应用程序部署到Heroku的步骤:

  1. 在package.json中,将此行添加到脚本"heroku-postbuild": "NPM_CONFIG_PRODUCTION=false npm install --prefix client && npm run build --prefix client"

  2. 然后在脚本之后添加了此"engines": { "node" : "[your node version]" }

  3. 在index.js中,在设置路线后输入以下代码

    if (process.env.NODE_ENV === "production") {
      app.use(express.static("client/build"));
      const path = require("path");
      app.get("*", (req, res) => {
        res.sendFile(path.resolve(__dirname, "client", "build", "index.html"));
      });
    }
    
  4. 我假设您使用git进行版本控制并已安装heroku。打开你的终端,然后打开heroku登录 - > Heroku的 创建 - > git push heroku master。如果您没有收到任何错误, 您成功部署了应用程序。

  5. 这是我将我的应用程序部署到Heroku的我的GitHub https://github.com/dnp1204/instagrom。我希望它会让你知道如何做到这一点

    希望你能让它发挥作用!

答案 2 :(得分:0)

在2019年,这确实对我有用:

在node.js服务器中:

app.use('/react',   express.static(path.join(__dirname, '../client/build')));

package.json中的反应

http://localhost:server-port/client 

然后在浏览器中输入

http://localhost:server-port/client .

您现在应该看到反应主页。 希望对某人有所帮助。