Мне нужно обновить пряжу 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 я получаю сообщение об ошибке ниже.
Файл блокировки был бы изменен при этой установке, что явно запрещено.
Да спасибо!
Я могу воспроизвести проблему, используя ваш yaml. Причина проблемы в том, что yarn.lock
не обновляется при запуске yarn install
.
Чтобы решить эту проблему, выполните следующие действия, чтобы создать новый файл yarn.lock
:
git clone <your repo url>
yarn.lock
из своего проекта.corepack enable
, yarn set version 3.8.3
и yarn install
в корневой папке вашего проекта.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
Вы можете увидеть тот же выпуск здесь для более подробной информации.
Привет @Арун Сингх, ты пробовал ответить ниже? Работает ли это для вас?