【问题标题】:Deploy Nuxt.js SSR app to Azure App Service via Azure DevOps Pipelines通过 Azure DevOps Pipelines 将 Nuxt.js SSR 应用部署到 Azure 应用服务
【发布时间】:2020-09-06 05:44:04
【问题描述】:

我在将 SSR Nuxt.js 应用从 Azure DevOps Pipelines 部署到 Azure 应用服务时遇到问题。

免责声明: ✅我已经使用 Linux 容器设置了 Azure 应用服务。 ✅我已将此添加到nuxt.config.js

  server: {
    host: '0.0.0.0'
  }

在 Azure DevOps Pipelines 中,我在构建后复制这些文件:

.nuxt/**
static/**
package.json
nuxt.config.js

然后我将它们压缩为 package.zip 在日志中它显示它已成功压缩文件,但是当我解压缩包时,没有任何 .nuxt 文件存在。我也很困惑,由于某种原因,在 package.zip 中,它会将所有构建文件放在一个名为 a/

的文件夹中

您可以在照片中看到它正在顶部创建“a”文件夹,并且看起来所有文件都已添加到存档中。 当我解压缩 package.zip 时,其中的唯一文件是: * 包.json * nuxt.config.js * /静态

这是我的 YAML 文件的样子:

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: NodeTool@0
  inputs:
    versionSpec: '12.x'
  displayName: 'Install Node.js'

- script: |
    cd src/Web.Nuxt
    npm install
    npm run build
  displayName: 'npm install and build'

- task: CopyFiles@2
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)/src/Web.Nuxt'
    Contents: |
      .nuxt/**
      static/**
      package.json
      nuxt.config.js
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'
    archiveType: 'zip'
    archiveFile: '$(Build.ArtifactStagingDirectory)/package.zip'
    replaceExistingArchive: true

- task: PublishBuildArtifacts@1
  inputs:
    PathtoPublish: '$(Build.ArtifactStagingDirectory)/package.zip'
    ArtifactName: 'drop'
    publishLocation: 'Container'

非常感谢任何可以让我回到使用 Azure DevOps Pipelines、Azure 应用服务和 Nuxt SSR 应用部署 SSR Next.app 的帮助。这很难排除故障,因为在 Azure DevOps Pipelines and Releases 中,它表示一切都很成功。

【问题讨论】:

  • 另外,ls -a 命令也可以帮助您找到丢失的文件夹。
  • 您是否已使用 Azure DevOps CI/CD 成功地将 Nuxt SSR 应用部署到 Azure 应用服务?我没有看到对 web.config 的引用

标签: azure-devops azure-pipelines nuxt.js azure-pipelines-release-pipeline azure-app-service-envrmnt


【解决方案1】:

这个过程没有错。 .nuxt 文件夹只是 Linux 环境中的隐藏文件夹。它是隐藏而不是丢失 ~

对于 Linux: 名称以.(dot) 开头的文件夹被视为一个隐藏文件夹。网上有很多关于这种行为的讨论,你可以试试this one

如果你下载那个package.zip文件并在Windows环境下解压,你可以很容易找到.nuxt文件夹:

【讨论】:

  • 哇,我觉得自己像个白痴 :) 所以我想我需要弄清楚为什么它会创建一个 a 文件夹。在 Pipelines-Releases 中,我添加了一个 cd a && npm i 的部署后内联脚本来解决这个问题并尝试让这个应用程序启动......它创建了节点模块文件夹,但 nuxt Web 应用程序仍然没有运行在 azure 应用服务上,所以肯定有其他问题。
  • $(Build.ArtifactStagingDirectory) 的值为some path/a/。因此,a 文件夹是您的 zip 文件所在的 artifactstaging 目录。
猜你喜欢
  • 1970-01-01
  • 2022-06-10
  • 2020-01-29
  • 1970-01-01
  • 1970-01-01
  • 2021-01-25
  • 2021-02-26
  • 1970-01-01
  • 2020-04-16
相关资源
最近更新 更多