如何在部署到 Azure 时从 Github Actions 运行 npm install?

问题描述 投票:0回答:1

我有一个 .Net Core Web 应用程序,其中包含一些 npm 包。因此,我的项目根目录中有一个

package.json
文件,如果我在本地运行
npm install
,则会创建一个名为
node_modules
的文件夹。该文件夹中所需的文件由
UseStaticFiles
提供。到目前为止一切顺利,本地一切正常。

现在我正在从 GitHub Actions 自动将此应用程序部署到 Azure 应用服务。我使用在 Azure 部署中心创建的工作流 yaml 文件。工作流程做了两件事:

  1. 为 .Net 应用程序构建、发布和上传工件
  2. 在 Azure 上下载工件并部署到我的 Azure Web 应用程序

当然,除了 npm 包之外,一切都工作正常。

因此,我在工作流程中添加了另一个构建步骤,以便在直接在 Azure 上部署后运行

npm install

- name: npm install
  run: npm install

如果 GitHub Action 被执行,我可以看到

npm install
被执行并安装了一些包:

但是,如果我在浏览器中打开应用程序,我会在控制台中收到错误消息,因为找不到 node_modules 中的资源。我通过 Kudo (

<myapp>.scm.azurewebsites.net/wwwroot
) 检查了我的应用程序服务的 wwwroot,确实没有 node_modules 文件夹。我猜
npm install
在错误的目录中执行,我知道我可以为
working-directory
构建步骤指定
npm-install
,但我不知道需要将其设置到哪个目录。

是否有人遇到同样的问题或知道如何在部署到 Azure 时从 GitHub Action 成功运行

npm install

.net azure azure-web-app-service github-actions npm-install
1个回答
0
投票

当我使用 GitHub Actions 部署应用程序时,我能够推送

node_modules
文件夹。

确保

node_modules
文件夹已推送到 GitHub 存储库。

参考SO中的Git命令将本地目录推送到Git。

enter image description here

enter image description here

  • 当我添加 GitRepo 时,在默认的
    yml
    文件中,路径设置为
    ${{env.DOTNET_ROOT}}/myapp
    , 将路径更改为
    .
    并重新运行作业。

我知道我可以为

working-directory
构建步骤指定
npm-install
,但我不知道需要将其设置到哪个目录。

  • npm-install
    的工作目录必须设置为
    package.json
    所在的路径,即应用程序的根文件夹。 所以,你需要设置
    .
    ,表示根目录。

  • 要确保将

    node_modules
    文件夹推送到根目录,您甚至可以使用 复制命令
    cp
    以及路径。

库杜enter image description here

请参阅 SO Thread

npm-install
安装在
yml
文件中。

© www.soinside.com 2019 - 2024. All rights reserved.