Невозможно опубликовать приложение Angular после обновления Microsoft Build Engine

Некоторое время на прошлой неделе Microsoft DevOps обновила Build Engine с:

Microsoft (R) Build Engine версии 16.2.32702 + c4012a063 для .NET Core

TO

Microsoft (R) Build Engine версии 16.3.0 + 0f4c62fea для .NET Core

Похоже, что это обновило NODE до версии 13 и привело к тому, что установка пакета Npm (node-saas) перестала работать ...

> [email protected] install D:\a\1\s\Website\ClientApp\node_modules\@angular-devkit\build-angular\node_modules\node-sass
> node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.3/win32-x64-72_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v4.9.3/win32-x64-72_binding.node": 

HTTP error 404 Not Found

Перед обновлением:

 > [email protected] install D:\a\1\s\Website\ClientApp\node_modules\@angular-devkit\build-angular\node_modules\node-sass
 > node scripts/install.js

Downloading binary from https://github.com/sass/node-sass/releases/download/v4.9.3/win32-x64-64_binding.node
Download complete

Похоже, что URL-адрес изменился с: https://github.com/sass/node-sass/releases/download/v4.9.3/win32-x64-64_binding.node

TO

https://github.com/sass/node-sass/releases/download/v4.9.3/win32-x64-72_binding.node

Может кто-нибудь помочь решить эту проблему? Возможно, я смогу указать версию движка в Azure DevOps ...

введите здесь описание изображения


person pmeyer    schedule 11.11.2019    source источник
comment
Замечательно, что вы исправили это, обновившись до angular 8. Вы можете опубликовать свое решение и принять его, чтобы другие, столкнувшиеся с такой же проблемой, могли найти это решение и исправить свою проблему.   -  person Levi Lu-MSFT    schedule 14.11.2019


Ответы (2)


Мы смогли решить эту проблему в нашей системе сборки, добавив задачу Use Node.js ecosystem в наш конвейер перед задачей npm install.

  • Проверьте среду узла на вашей машине разработки, где она работает, сделайте заметку.
  • Добавьте новую задачу в свой конвейер и найдите «Установщик инструмента Node.js».
  • Укажите версию узла, которую вы хотите использовать в этой задаче
  • Сохранить трубопровод

Yaml конвейера выглядит примерно так:

steps:
- task: UseNode@1
  displayName: 'Use Node 8.12.0'
  inputs:
    version: 8.12.0

Мы также одновременно перешли с npm install на npm ci, но я не думаю, что это связано в данный момент. Обновление: мы пытались использовать только npm ci, и это не решило проблему.

person Matt DeKrey    schedule 12.11.2019
comment
Спасибо за помощь, я закончил обновлением до Angular 8, а также всех зависимостей, и проблема была исправлена. - person pmeyer; 13.11.2019

Вы можете попробовать удалить папку node_modules и package-lock.json, очистить кеш, а затем запустить npm install на локальном компьютере.

   #remove node_module folder
   #remove package-lock.json

    npm cache clean
    npm install

Это обновит node-sass до последней версии. А затем отправьте изменения в репозиторий git и перезапустите конвейер. Дополнительную информацию см. здесь.

win32-x64-72_binding.node недоступен для узла sass 4.9.3. поэтому он сможет решить эту проблему при обновлении узла sass до последней версии v4.13.0, проверьте здесь для получения дополнительной информации.

Добавление:

Чтобы выполнить указанную выше команду в вашем конвейере. Вы можете добавить задачи, как в примере ниже, для выполнения указанной выше команды. и запустите npm install. Вам необходимо настроить настройку в соответствии с вашим проектом для этих задач  введите описание изображения здесь

person Levi Lu-MSFT    schedule 12.11.2019
comment
Теперь он работает локально, однако у меня все еще возникают проблемы в Azure Pipeline после фиксации файла package-lock.json ... Есть идеи? - person pmeyer; 12.11.2019
comment
Вы также можете добавить в конвейер команду run remove и команду npm install. - person Levi Lu-MSFT; 12.11.2019