通过 Azure DevOps Pipelines 将 Nuxt.js SSR 应用部署到 Azure 应用服务

Deploy Nuxt.js SSR app to Azure App Service via Azure DevOps Pipelines

我在将 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 文件的 none 包时存在。我也很困惑,出于某种原因,在 package.zip 中它将所有构建文件放在一个名为 a/

的文件夹中

您可以在照片中看到它正在顶部创建 'a' 文件夹,并且看起来所有文件都已添加到存档中。 当我解压缩 package.zip 时,其中唯一的文件是: * package.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 App Service 和 Nuxt SSR 应用程序部署 SSR Next.app 的过程中。这很难解决,因为在 Azure DevOps Pipelines and Releases 中它说一切都成功了。

这个过程没有问题。 .nuxt文件夹只是Linux环境下的隐藏文件夹。它是 hidden 而不是 missing ~

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

如果您下载 package.zip 文件并在 Windows 环境中解压缩,您可以轻松找到 .nuxt 文件夹: