Может ли кто — нибудь объяснить, как работает замок пряжи?

#node.js #yarnpkg

Вопрос:

Я создаю образ докера на node.js версия 10 и то же самое работало раньше, но теперь наша сборка образа не удается из-за следующих ошибок

 error @azure/core-auth@1.3.2: The engine "node" is incompatible with this module. Expected version ">=12.0.0". Got "10.23.2"
 

ошибка Обнаружена несовместимый модуль.

Я могу исправить эту проблему выше с помощью

 yarn install --ignore-engines
 

Но в будущем это приведет к некоторым проблемам, поэтому я не хочу использовать --ignore-engines флаги.

В файле package.json я специально передаю конкретную версию

  "devDependencies": {
"@azure/core-auth":"1.3.0" 
}
 

когда я заглянул в пряжу.файл блокировки Я вижу дубликат пакета с другой версией

"@azure/core-auth@1.3.0": version "1.3.0" resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.0.tgz#0d55517cf0650aefe755669aca8a2f3724fcf536" integrity sha512-kSDSZBL6c0CYdhb 7KuutnKGf2geeT bCJAgccB0DD7wmNJSsQPcF7TcuoZX83B7VK4tLz/u 8sOO/CnCsYp8A== dependencies: "@azure/abort-controller" "^1.0.0" tslib "^2.0.0"

"@azure/core-auth@^1.1.3", "@azure/core-auth@^1.1.4", "@azure/core-auth@^1.3.0": version "1.3.2" resolved "https://registry.yarnpkg.com/@azure/core-auth/-/core-auth-1.3.2.tgz#6a2c248576c26df365f6c7881ca04b7f6d08e3d0" integrity sha512-7CU6DmCHIZp5ZPiZ9r3J17lTKMmYsm/zGvNkjArQwPkrLlZ1TZ EUYfGgh2X31OLMVAQCTJZW4cXHJi02EbJnA== dependencies: "@azure/abort-controller" "^1.0.0" tslib "^2.2.0"

может ли кто-нибудь объяснить мне, почему я вижу эти две версии пакета, почему yarn не соблюдает package.json? Как решить эти проблемы?

Я могу вручную удалить это из yarn.заблокируйте файл, и он отлично работает, но я хотел бы этого избежать.

Комментарии:

1. Предположительно, потому, что, хотя вы точно указали 1.3.0, некоторые из ваших зависимостей дают вам переходную зависимость от более широкого семвера — вы можете увидеть их в списке: ^1.1.3, ^1.1.4, ^1.3.0. Вы могли бы использовать classic.yarnpkg.com/en/docs/selective-version-resolutions или, учитывая, что узел 10 сейчас вышел из LTS, обновите узел.