在 Azure Linux Web App 上为 reactjs 应用安装 node_modules 的最佳实践

Posted

技术标签:

【中文标题】在 Azure Linux Web App 上为 reactjs 应用安装 node_modules 的最佳实践【英文标题】:Best practice for installing node_modules for a reactjs app on Azure Linux Web App 【发布时间】:2021-07-24 14:12:24 【问题描述】:

我有一个在 Linux Azure Web 应用服务器上运行的 react(特别是 NextJS)网络应用。我已通过 GitHub Actions 部署并正常工作。但是,我在寻找部署 node_modules 的最有效方法时遇到了问题。

这是我尝试过的。

我已在 GitHub Actions 中运行安装和构建,并将包部署为 zip 工件。但是,由于 node_modules,文件很大,需要 10 多分钟才能部署。 我创建了一个 postDeploy 脚本,以便在运行 npm install 的部署后运行。不确定这是否是最好的方法,所以我恢复了这个。 对于启动命令,我有 azure 运行 npm run start:prod。我考虑将其更改为 npm install && npm run start:prod 。我也不确定这是否是个好主意 到目前为止,我已经确定我只是手动进入服务器并在部署后运行npm install。不过,这不适用于 CI/CD。

我读过 azure kudu 据说会在 wwwroot 文件夹中检测到 package.json 并会自动安装依赖项,但我没有看到这项工作,也找不到任何文档。到目前为止,我最好的想法似乎是在启动应用程序之前更改我的启动命令以运行安装,但我不确定。

有什么建议吗?

【问题讨论】:

【参考方案1】:

在这方面,GitHub Action 和 Azure DevOps 之间应该没有太大区别。但是您应该在管道上实际执行的操作是运行 nom run build 命令并仅发布生成的输出。

请看here how it looks on Azure DevOps。

【讨论】:

对,在这种情况下,npm run build 是下一个构建,它会创建一个带有构建输出的 .next/ 文件夹。但是,我们仍然需要在 azure 服务器上部署或安装 node_modules。

以上是关于在 Azure Linux Web App 上为 reactjs 应用安装 node_modules 的最佳实践的主要内容,如果未能解决你的问题,请参考以下文章

在 Azure 上为 .NET Web Api 启用 CORS

在 Azure 应用服务上为 Flask Web 应用安装 unixodbc-dev

哪个是基于NodeJS的Azure Web App(Linux)上运行的默认Web服务器?

Azure Web App-当您选择Runtime stack作为Node.js时,为什么只让您选择Linux作为操作系统?

在 Google App Engine 上为用 Python 编写的 Qualtrics 创建 Web 服务

Laravel:运行队列:在 Windows Azure Web App 上连续监听