Azure devops React JS Azure DevOps Web App不会运行,但服务器中存在文件,并且管道中没有错误

Azure devops React JS Azure DevOps Web App不会运行,但服务器中存在文件,并且管道中没有错误,azure-devops,azure-pipelines,Azure Devops,Azure Pipelines,我正在做一个简单的Azure DevOps CICD部署。我正在遵循所有步骤。首先,这是我的YAML文件。我保留了这些评论,以防万一,我犯的错误比我意识到的要多 trigger: - master pool: vmImage: 'ubuntu-latest' # Set variables variables: directory: ReactJSRecipeApp steps: - task: NodeTool@0 inputs: versionSpec: '12

我正在做一个简单的Azure DevOps CICD部署。我正在遵循所有步骤。首先,这是我的YAML文件。我保留了这些评论,以防万一,我犯的错误比我意识到的要多

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'


# Set variables
variables:
  directory: ReactJSRecipeApp


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

- script: 
    npm install
  displayName: 'npm install'

- script:
    npm run build
  displayName: 'npm build'  

- task: CopyFiles@2
  displayName: 'Copy files'
  inputs:
    sourceFolder: 'build' 
    Contents: '**/*'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
    cleanTargetFolder: true


- task: ArchiveFiles@2
  displayName: 'Archive files'
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)'
    includeRootFolder: false
    archiveType: zip
    archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
    replaceExistingArchive: true    


- task: PublishBuildArtifacts@1
  displayName: 'Publish Build Artifacts'
  inputs: 
    pathtoPublish: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
    ArtifactName: 'www' # output artifact named www


- task: AzureWebApp@1
  displayName: 'Deploy to App Service'
  inputs:
    azureSubscription: 'ReactJSRecipeAppConnection'
    appName: 'reactjsrecipeappwebapp2'
    appType: 'webApp'
    package: '$(System.ArtifactsDirectory)/$(Build.BuildId).zip'
    customWebConfig: '-Handler iisnode -NodeStartFile server.js -appType node' 
所以,当我运行这个程序时,在管道中没有错误

此外,我想指出以下几点

  • 如果我下载artifacts-zip文件夹,我就能够在本地运行该文件夹,并让我的react应用程序在本地主机服务器上正常运行
  • 我通过Kudo工具检查我的Azure web应用程序,我看到wwwroot中的所有文件,时间戳与工件文件夹中的zip文件相匹配。因此,我假设文件确实被推送到web服务器中的正确位置
  • 在我运行CICD触发器之前,这些azure web应用程序是全新创建的,我得到了标准的azure欢迎/登录页面。因此,网络应用本身是好的
毕竟,网站本身并不提供网页服务。我有一个404。我在Azure上尝试了两个不同的web应用程序,但结果相同

有没有什么建议,我哪里出了问题

更新1

我决定手动检查Filezilla上的文件。但是,它是空的

但是,工藤显示文件。我不明白

更新2


因此,我从VisualStudio代码直接部署了工件发布文件夹。这个网络应用运行良好。因此,执行此步骤以确保web应用程序配置正确。

好的,看来我的YAML文件不正确。我终于成功了

如果有人来找一个现成的React YAML文件(因为Azure DevOps文档在当前的形式下没有那么有用),我会把它贴在这里

包含简单react代码(包括YAML)的完整存储库在这里

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

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

- script: |
    npm install
    npm run build
  displayName: 'npm install and build'

- task: CopyFiles@2
  inputs:
    Contents: 'build/**' # Pull the build directory (React)
    TargetFolder: '$(Build.ArtifactStagingDirectory)'

- task: PublishBuildArtifacts@1
  inputs: 
    pathtoPublish: $(Build.ArtifactStagingDirectory) # dist or build files
    ArtifactName: 'www' # output artifact named www

# Default value: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
- task: ArchiveFiles@2
  inputs:
    rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/build/'
    includeRootFolder: false

- task: AzureWebApp@1
  inputs:
    azureSubscription: 'ReactJSRecipeAppConnection'
    appName: 'ReactJSRecipeApp4'
    package: '$(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip'