Использование поля разрешений для игнорирования ошибок проверки пряжи, когда вы знаете, что они безопасны.

Вчера я блокировал нашу цепочку разработки и сборки. И хотя все знают, что нужно анализировать и тестировать, я только недавно обнаружил yarn check. Команда, которая позволяет убедиться, что зависимости узлов, с которыми вы работаете локально, синхронизированы с репозиторием.

Как команду yarn check довольно легко использовать. По умолчанию он проверяет, соответствует ли ваш yarn.lock диапазонам, разрешенным из package.json, и что версии пакетов npm, которые вы установили локально, совпадают с хешированными в вашем файле yarn.lock. Если он проходит без ошибок, то ваша локальная среда такая же, как и у всех (включая машину сборки)!

Проблема, однако, заключается в том, что часто вам нужно игнорировать предупреждения. Особенно, когда вы настаиваете на более поздней версии пакета, от которого зависит другой. В нашем случае мы используем версию jest, отличную от той, что указана в vue-cli. Мы протестировали эту настройку, но yarn check (правильно!) выдавали ошибки, сообщая нам, что наша package.json привела к чему-то, что не может быть правильно разрешено.

Для квитирования ошибок yarn check необходимо использовать карту package.json > resolutions.

Ключ разрешения позволяет вам вручную указать, что вы имели в виду переопределение зависимости зависимости, например:

"resolutions": {
  "@vue/cli-plugin-unit-jest/jest": "^24.6.0",
  "@vue/cli-plugin-unit-jest/babel-jest": "^24.6.0",
},

Где эти записи имеют форму "dependency/dependencies-dependency/etc...": "version you want".

После того, как вы укажете разрешение, yarn check подтвердит ошибку как предупреждение (в конце концов, вы работаете против сервера). Но это означает, что вы вернетесь к нулевому коду ошибки; на радость своей сборочной машине!

Уроки. yarn check — отличный способ синхронизировать node_modules. Используйте поле package.json > resolutions, чтобы квитировать ошибки зависимостей как предупреждения.