I have a Typescript plus Angular app that works great locally.
I'm trying to set up a deployment pipeline on Azure DevOps that builds and releases to App Service (Linux Node.js web app).
The plumbing works and the whole pipeline succeeds (both the build and release stages), however I cannot get the deployed app to work; it has a
ng module not found error
when it attempts 'npm start'. And that's that.
What am I doing wrong? How do I fix it?
Here's the YAML:
# Node.js Express Web App to Linux on Azure
# Build a Node.js Express app and deploy it to Azure as a Linux web app.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/javascript
trigger: none
variables:
# Azure Resource Manager connection created during pipeline creation
azureSubscription: 'redacted'
# Web app name
webAppName: 'redacted'
# Environment name
environmentName: 'redacted'
# Agent VM image name
vmImageName: 'ubuntu-latest'
stages:
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: NodeTool@0
inputs:
versionSpec: '14.x'
displayName: 'Install Node.js'
- script: |
npm i -g -force @angular/[email protected]
npm i -force
ng build --prod
displayName: 'npm install etc'
- task: ArchiveFiles@2
displayName: 'Archive files'
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)'
includeRootFolder: false
archiveType: zip
archiveFile: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
replaceExistingArchive: true
- upload: $(Build.ArtifactStagingDirectory)/$(Build.BuildId).zip
artifact: drop
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: Deploy
displayName: Deploy
environment: $(environmentName)
pool:
vmImage: $(vmImageName)
strategy:
runOnce:
deploy:
steps:
- task: AzureWebApp@1
displayName: 'Azure Web App Deploy: Redacted'
inputs:
azureSubscription: $(azureSubscription)
appType: webAppLinux
appName: $(webAppName)
runtimeStack: 'NODE|14.x'
package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
startUpCommand: 'npm start'



package.json. 2. Please download the pipeline artifact from the build and check ifnode_modulesfolder contains ng. See this blog for more detailed info.