Возникла проблема при обновлении пряжи 1.22.x до 3.8.3 в конвейере сборки Azure

Мне нужно обновить пряжу 1.22.x до 3.8.3 в конвейере сборки Azure. Я изменил файл yml конвейера:

 - task: NodeTool@0
        inputs:
            versionSpec: '16.x'
            checkLatest: true   
      script: corepack enable && yarn set version 3.8.3 && yarn install --network-timeout=1000000 --frozen-lockfile 
        displayName: Install dependencies
      - pwsh: |
            # yarn nx reset # Resets cache and nx daemon
            yarn nx run-many --target=build --configuration production --projects = "my-app"
        displayName: Build

При запуске сборки в конвейере Azure Devops я получаю сообщение об ошибке ниже.

Файл блокировки был бы изменен при этой установке, что явно запрещено.

Привет @Арун Сингх, ты пробовал ответить ниже? Работает ли это для вас?

Ziyang Liu-MSFT 15.07.2024 08:12

Да спасибо!

Arun Singh 15.07.2024 11:55
Настройка шаблона Metronic с помощью Webpack и Gulp
Настройка шаблона Metronic с помощью Webpack и Gulp
Я пишу эту статью, чтобы поделиться тем, как настроить макет Metronic с помощью Sass, поскольку Metronic предоставляет так много документации, и они...
0
2
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я могу воспроизвести проблему, используя ваш yaml. Причина проблемы в том, что yarn.lock не обновляется при запуске yarn install.

Чтобы решить эту проблему, выполните следующие действия, чтобы создать новый файл yarn.lock:

  1. Клонируйте свой репо на локальном компьютере. git clone <your repo url>
  2. Удалите yarn.lock из своего проекта.
  3. Запустите corepack enable, yarn set version 3.8.3 и yarn install в корневой папке вашего проекта.
  4. Новый файл yarn.lock будет создан автоматически. Вставьте его в свой репозиторий Azure. Тогда ваш конвейер должен работать как положено.

Если вы не хотите обновлять файл yarn.lock в репозитории Azure и просто хотите обновить пряжу в текущем конвейере, удалите --frozen-lockfile из своей команды, добавьте переменную среды YARN_ENABLE_IMMUTABLE_INSTALLS и установите для нее значение false. Тогда трубопровод заработает.

- task: NodeTool@0
  inputs:
    versionSpec: '16.x'
  displayName: 'Install Node.js'
- script: |
    corepack enable
    yarn set version 3.8.3
    yarn install --network-timeout=1000000 
  env:
    YARN_ENABLE_IMMUTABLE_INSTALLS: false

Вы можете увидеть тот же выпуск здесь для более подробной информации.

Другие вопросы по теме

Похожие вопросы

Angular ng build выдает ошибку link.parentNode.insertBefore не является функцией
Ошибка: не удалось разрешить различные зависимости Storybook с помощью Storybook 8 и PNPM
Развертывание приложения Teams Toolkit через CI/CD завершается с ошибкой «Эта команда работает только для проекта, созданного с помощью Teams Toolkit»
React Native w/Expo: странная ошибка при использовании run:android
Сборка npm run не удалась из-за несовместимости машинописного текста или lodash
Start-Process (pnpm run build) Эту команду невозможно запустить из-за ошибки: %1 не является допустимым приложением Win32
Установите пакет TypeScript из подпапки репозитория GitHub
Я получаю необработанный отказ от обещания, для которого мне нужен правильный синтаксис в nodejs
Приложение Vite React не открывает браузер по умолчанию с терминала
Использование NPM для создания приложения React: СЕРЬЕЗНОЕ ИЗМЕНЕНИЕ: webpack <5 используется для включения полифилов для основных модулей node.js по умолчанию. Это уже не так