Я пишу внутренний инструмент, который сравнивает версию, установленную в проекте, и позволяет передавать только определенную версию. Для этого я должен проверить версию, которая разрешена в файле yarn.lock
, как пакет. Файл json имеет диапазон semver, а не специфицированную c версию, и в любом случае он не сообщает вам о зависимости.
Я пытался использовать команду yarn list
, но она также печатает диапазон полуавтоматического файла и анализировать его очень сложно (даже с параметром --json
). Так что yarn.lock
кажется единственным способом. Я знаю, что yarn.lock
может иметь отдельные версии одного и того же пакета, и в этом случае мне нужна только версия, которая установлена в. node_nodules
(должна быть только одна из них). Я понятия не имею, как разобрать файл блокировки, хотя.
Другой способ, о котором я могу подумать, - это перейти в папку node_modules
и проверить версию в package.json
пакета.
Ни один из приведенных выше вариантов не выглядит чистым для меня. Есть ли способ узнать разрешенную версию указанного пакета c (при условии, что я знаю имя пакета и знаю, что он установлен) легко и чисто, насколько это возможно?
Обновление :
На самом деле мне нужны все версии установленного пакета (даже если они действительно глубоко в дереве зависимостей).