Развертывание приложения Node.js с DevOps Azure приводит к ошибке об отсутствующем модуле - PullRequest
2 голосов
/ 04 октября 2019

Я пытаюсь развернуть свой Angular-проект с помощью Azure DevOps. Судя по зеленым флажкам для каждого этапа, сборка и развертывание выполняются правильно. Когда я пытаюсь зайти на веб-страницу, она показывает страницу с ошибкой приложения со ссылкой на диагностические ресурсы.

Проект находится на GitHub, во время сборки он оттуда извлекается. В конце концов, после выполнения всех задач приложение не запускается, и я получаю следующую ошибку в диагностических ресурсах:

2019-10-04T11:19:47.004554842Z A P P   S E R V I C E   O N   L I N U X
2019-10-04T11:19:47.004559742Z 
2019-10-04T11:19:47.004564342Z Documentation: http://aka.ms/webapp-linux
2019-10-04T11:19:47.004569042Z NodeJS quickstart: https://aka.ms/node-qs
2019-10-04T11:19:47.004573843Z NodeJS Version : v10.10.0
2019-10-04T11:19:47.004578543Z 
2019-10-04T11:19:47.065230218Z /opt/startup/init_container.sh: line 32: [: ==: unary operator expected
2019-10-04T11:19:47.108722107Z Oryx Version : 0.2.20190730.1, Commit: 4ef0d5854df39c57605e59bb6d255215cc85468a
2019-10-04T11:19:47.109454132Z 
2019-10-04T11:19:47.115741747Z Cound not find build manifest file at '/home/site/wwwroot/oryx-manifest.toml'
2019-10-04T11:19:47.116226163Z Could not find operation ID in manifest. Generating an operation id...
2019-10-04T11:19:47.116765782Z Build Operation ID: d07e7783-8975-4038-8eaa-4e7987fbfe37
2019-10-04T11:19:47.890841571Z Writing output script to '/opt/startup/startup.sh'
2019-10-04T11:19:47.896506064Z Running #!/bin/sh
2019-10-04T11:19:47.897427996Z 
2019-10-04T11:19:47.897445097Z # Enter the source directory to make sure the script runs where the user expects
2019-10-04T11:19:47.898696539Z cd "/home/site/wwwroot"
2019-10-04T11:19:47.898713540Z 
2019-10-04T11:19:47.899855479Z if [ -z "$PORT" ]; then
2019-10-04T11:19:47.900292094Z         export PORT=8080
2019-10-04T11:19:47.900308195Z fi
2019-10-04T11:19:47.901053620Z 
2019-10-04T11:19:47.901069221Z npm start
2019-10-04T11:19:48.909373625Z 
2019-10-04T11:19:48.909490829Z > appname@0.0.0 start /home/site/wwwroot
2019-10-04T11:19:48.909499129Z > ng serve
2019-10-04T11:19:48.909512530Z 
2019-10-04T11:19:49.177294093Z internal/modules/cjs/loader.js:583
2019-10-04T11:19:49.177326694Z     throw err;
2019-10-04T11:19:49.177333094Z     ^
2019-10-04T11:19:49.177336894Z 
2019-10-04T11:19:49.177340595Z Error: Cannot find module '../lib/init'
2019-10-04T11:19:49.177344395Z     at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
2019-10-04T11:19:49.177348395Z     at Function.Module._load (internal/modules/cjs/loader.js:507:25)
2019-10-04T11:19:49.177360595Z     at Module.require (internal/modules/cjs/loader.js:637:17)
2019-10-04T11:19:49.177364695Z     at require (internal/modules/cjs/helpers.js:20:18)
2019-10-04T11:19:49.177368396Z     at Object. (/home/site/wwwroot/node_modules/.bin/ng:25:1)
2019-10-04T11:19:49.177372596Z     at Module._compile (internal/modules/cjs/loader.js:689:30)
2019-10-04T11:19:49.177376196Z     at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
2019-10-04T11:19:49.177379896Z     at Module.load (internal/modules/cjs/loader.js:599:32)
2019-10-04T11:19:49.177383596Z     at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
2019-10-04T11:19:49.177387196Z     at Function.Module._load (internal/modules/cjs/loader.js:530:3)
2019-10-04T11:19:49.188853589Z npm ERR! code ELIFECYCLE
2019-10-04T11:19:49.190238236Z npm ERR! errno 1
2019-10-04T11:19:49.193511748Z npm ERR! appname@0.0.0 start: `ng serve`
2019-10-04T11:19:49.194584885Z npm ERR! Exit status 1
2019-10-04T11:19:49.196721058Z npm ERR! 
2019-10-04T11:19:49.197268977Z npm ERR! Failed at the appname@0.0.0 start script.
2019-10-04T11:19:49.197998301Z npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
2019-10-04T11:19:49.205773868Z 
2019-10-04T11:19:49.206361388Z npm ERR! A complete log of this run can be found in:
2019-10-04T11:19:49.206880405Z npm ERR!     /root/.npm/_logs/2019-10-04T11_19_49_199Z-debug.log

Файл YML, который используется на этапах сборки и развертывания, выглядит следующим образом:

variables:

  # 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: '10.x'
      displayName: 'Install Node.js'

    - script: |
        npm install -g @angular/cli
        npm install
        npm run build
      displayName: 'npm install and build'

    - 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: appname'
            inputs:
              azureSubscription: $(azureSubscription)
              appType: webAppLinux
              appName: $(webAppName)
              runtimeStack: 'NODE|10.10'
              package: $(Pipeline.Workspace)/drop/$(Build.BuildId).zip
              startUpCommand: 'npm start'

Я пытался запустить другие команды, чтобы переустановить npm или удалить node_modules, но это не решило проблему. Пожалуйста, помогите, так как я не знаю, как заставить это работать.

Ответы [ 2 ]

0 голосов
/ 07 октября 2019

Развертывание приложения Node.js с помощью DevOps Azure приводит к ошибке об отсутствующем модуле

Согласно сообщению об ошибке:

Error: Cannot find module '../lib/init'

Кажется, что проблема с папкой node_modules, вы можете попробовать удалить каталог /node_modules/ и затем выполнить новую установку с помощью npm install.

Вы можете использовать команду useстрока, чтобы удалить эту папку и переустановить:

cd your_project_folder
rm -rf node_modules
npm install

Надеюсь, это поможет.

0 голосов
/ 04 октября 2019
  1. Вытащить локально последнюю версию
  2. Удалить package-lock.json
  3. Выполнить npm install
  4. Нажмите новую package-lock.json
  5. Проверка AzureДевопс
...