【发布时间】:2019-04-28 01:03:38
【问题描述】:
我有一个已成功转换为 Angular Universal 的应用程序(应我的客户要求)。
我使用命令npm run serve:ssr 运行我的应用程序,并将我的浏览器指向http://localhost:4000,它可以工作。
现在我要部署。我已经运行了 npm run build:ssr,它创建了一个 dist 文件夹。
dist 文件夹中没有“正常”的角度文件。它比较稀疏,它有:
- 一个server.js
- 浏览器文件夹
- 和一个服务器文件夹
如果我将这些文件 ftp 到我的 azure 站点(就像我过去对普通 Angular 应用程序所做的那样),它就不起作用。我收到一个错误:
您无权查看此目录或页面。
所以我尝试使用 VSTS 设置 CI,并按照我发现的一些步骤来发布 Angular Universal(尽管它们不是很清楚)。 这是我的 yaml 文件:
queue:
name: Hosted VS2017
demands: npm
steps:
- task: NodeTool@0
displayName: 'Use Node 8.x'
inputs:
versionSpec: 8.x
- task: Npm@1
displayName: 'npm install'
inputs:
verbose: false
- task: Npm@1
displayName: 'npm run'
inputs:
command: custom
verbose: false
customCommand: 'run build:ssr'
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)/app/dist'
inputs:
SourceFolder: '$(Build.SourcesDirectory)/dist'
TargetFolder: '$(Build.ArtifactStagingDirectory)/app/dist'
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)/app/dist'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: server.js
TargetFolder: '$(Build.ArtifactStagingDirectory)/app/dist'
- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)/app/dist'
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: prerender.js
TargetFolder: '$(Build.ArtifactStagingDirectory)/app/dist'
- task: AzureRmWebAppDeployment@3
displayName: 'Azure App Service Deploy'
inputs:
azureSubscription: '<my subscription>'
WebAppName: firstApplication
DeployToSlotFlag: true
ResourceGroupName: Temp
SlotName: develop
Package: '$(Build.ArtifactStagingDirectory)/app'
ConfigurationSettings: '-Handler iisnode -NodeStartFile server.js -appType node'
我认为这是不对的。有人可以帮我解决这个问题吗?
【问题讨论】:
标签: angular azure azure-devops