Честно говоря, я нахожу это настолько раздражающим, что это постоянно меняется. Я решил эту самую проблему в более простой версии Angular здесь:
Развертывание Angular Универсальный в Azure
Но сейчас это устарело. Сервер больше не генерируется. js, вместо этого вам нужно изменить web.config , чтобы он указывал на main. js, что звучит как улучшение. Я обновил свой yaml до этого:
pool:
name: Azure Pipelines
steps:
- task: gittools.gitversion.gitversion-task.GitVersion@5
displayName: GitVersion
- task: NodeTool@0
displayName: 'Use Node 12.x'
inputs:
versionSpec: 12.x
- task: Npm@1
displayName: 'npm install angular cli'
inputs:
command: custom
verbose: false
customCommand: 'install @angular/cli -g'
- task: Npm@1
displayName: 'npm install'
inputs:
verbose: false
- task: Npm@1
displayName: 'npm build'
inputs:
command: custom
verbose: false
customCommand: 'run build:ssr'
- task: CopyFiles@2
displayName: 'Copy dist files to staging'
inputs:
SourceFolder: '$(Build.SourcesDirectory)/dist'
TargetFolder: '$(Build.ArtifactStagingDirectory)/app/dist'
- task: AzureRmWebAppDeployment@4
displayName: 'Azure App Service Deploy: app-name'
inputs:
azureSubscription: 'Pay-As-You-Go (f61dc7cf-0ca2-4982-bbe7-9b6527c2962b)'
WebAppName: r3plica
packageForLinux: '$(Build.ArtifactStagingDirectory)/app'
WebConfigParameters: '-Handler iisnode -NodeStartFile dist/app-name/server/main.js -appType node'
И это должно быть так, но, конечно, это не так просто. Теперь я получаю сообщение об ошибке, если я запускаю узел dist / app-name / server / main. js. Он возвращает это:
ReferenceError: Blob не определен в createBase64WorkerFactory (D: \ home \ site \ wwwroot \ dist \ app-name \ server \ main. js: 1: 1418371 )
Поэтому я немного осмотрелся, и кто-то предложил установить npm install --save-dev blob-polyfill
, что я и сделал, а затем отредактировать файл server.ts :
import { Blob } from 'blob-polyfill';
global['Blob'] = Blob;
Но, похоже, это ничего не сделало. Ошибка все еще сохраняется. Кто-нибудь знает, что я должен делать?