пряжа — правильный способ быстро проверить, удовлетворены ли требования `package.json` и `yarn.lock`?

Я хотел бы проверить, все ли зависимости в моем проекте (package.json и yarn.lock) удовлетворены без запуска yarn install (который строит целое дерево зависимостей и делает сетевые запросы)

Сначала я очень надеялся, что это сделал yarn check. Следующая команда проверяет, удовлетворяется ли каждая зависимость в package.json и, что установленный пакет соответствует файлу yarn.lock.

yarn check --integrity --verify-tree

Однако документация говорит, что это устарело, начиная с yarn v2, и что yarn install --check-files следует использоваться вместо этого.

Но документация для --check-files делает это кажется, что это делает что-то совершенно другое.

установка пряжи --check-files

Проверяет, что уже установленные файлы в node_modules не были удалены.

Я также могу убедиться, что его запуск, по сути, запускает полную команду yarn install, поэтому здесь он бесполезен.

Кроме того, в запросе на удаление yarn check также упоминается, что поведение --check-files не совсем интуитивно понятно.

Каков поддерживаемый способ запуска этой проверки в yarn v2 и более поздних версиях? Есть ли способ сделать упрощенную проверку package.json и yarn.lock без необходимости построения всего дерева зависимостей по сети, как это делает yarn install ?

FWIW, аналогичный вопрос был задан для npm и решение состояло в том, чтобы использовать флаг --dry-run, но этого флага, похоже, не существует в yarn.


person user2490003    schedule 24.01.2021    source источник


Ответы (2)


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

Лучше всего использовать офлайн-режим чтобы остановить любые внешние запросы, о которых вы просили. замороженный файл блокировки дополнительно предоставляет у вас есть возможность ошибиться, если зависимости не синхронизированы друг с другом.

Возможность проверить файлы насколько я понимаю, то, что вы упомянули, не обязательно для вашего случая, потому что вы не хотите проверять папку node_modules, а не package.json и yarn.lock.

А как насчет yarn install --offline --frozen-lockfile?

С наилучшими пожеланиями, надеюсь, что это поможет

person SimplyComple0x78    schedule 30.01.2021
comment
Спасибо большое! Функция --offline не содержала особых пояснений в этой документации, но лучше объясняется здесь. Однако похоже, что он поддерживает отдельную папку кеша. Это не идеально, я думаю, что все же есть более простой способ проверить установку. Но это отличная вещь для расследования. - person user2490003; 31.01.2021

Вы упомянули, что флаг --dry-run для npm делает то, что вы ищете в yarn. Начиная с [email protected], npm анализирует и использует yarn.lock файлов если они существуют (и нет package-lock.json).

Таким образом, вы можете использовать npm с параметром --dry-run, и он должен работать с файлом yarn.lock.

Убедитесь, что вы используете npm 7.0.0 или более позднюю версию. Обновить: npm install -g npm

person Trott    schedule 01.02.2021