我最初在根目录中设置了两个应用程序,一个用于客户端,另一个用于服务器。我的目录如下所示:
+--root
|--client
| |--node_modules
| |--package.json
|
|--server
|--node_modules
|--package.json
我将分别在每个目录中运行npm start来启动客户端代码,该代码包含React组件和路由的代码以及REST api的服务器代码。
我现在正试图在Azure上部署我的项目,而我现在无法像教程建议的那样让它工作。我重新组织了我的包结构,看起来现在使用一个package.json,但是我仍然遇到了在部署到Azure后需要运行两个应用程序以使我的网站运行的问题。这就是我的目录现在的状态,我同时使用自定义命令npm run client
和npm run server
。
+--root
|--client
|--server
|--node_modules
|--package.json
然而,我仍然无法让我的网站运行。是因为部署后wwwroot上没有index.html吗?我应该如何修复我的项目以便在Azure上托管它?
答案 0 :(得分:0)
我设法通过在Azure中设置一个新的nodejs项目来托管我的服务器端代码,然后将我的服务器代码复制到该项目中。现在我的API托管在Azure上。然后我将我的客户端代码部署到heroku。这就像一个魅力,它检测到package.json并自动运行启动客户端的npm start
脚本,并读取webconfig知道使用src / index.js作为我的应用程序的起点。我认为它也启动了我的服务器代码,因为我的npm start
命令也同时运行npm run server
命令,但它看起来不像客户端能够通过本地访问API主机网址我正在使用。我认为这是一个我需要研究的独立问题。