Использование поля разрешений для игнорирования ошибок проверки пряжи, когда вы знаете, что они безопасны.
Вчера я блокировал нашу цепочку разработки и сборки. И хотя все знают, что нужно анализировать и тестировать, я только недавно обнаружил 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
, чтобы квитировать ошибки зависимостей как предупреждения.