2017-02-15 4 views
0

Я использую модуль узла A, который зависит от узла B. Модуль узла A зависит от B с версией выше 2.0.1. Однако есть версия 2.0.5, это последняя версия. Версия 2.0.5 плохо работает с моей программой, я бы хотел получить конкретную версию 2.0.1, а не 2.0.5. Когда я делаю npm install, я получаю версию 2.0.5. Есть ли способ, которым я могу сделать установку npm, получить самую низкую подходящую версию пакета, а не самую высокую?Как заставить npm не получать последнюю зависимость от зависимостей

Редактировать: Я использовал yarn вместо npm и сделал именно то, что хотел.

ответ

0

Перейдите в файл package.json файла зависимости в вашей папке node_modules и убедитесь, что он указывает, что зависимость B является версией 2.0.1.

После этого пробега npm update

+0

Я знаю, что могу сделать это таким образом, но в следующий раз я буду делать НПМ установить на весь мой проект (когда я возьму новый клон из репозитория мерзавца) я получу 2.0.5 снова. Интересно, есть ли решение без изменения package.json других проектов. –

+0

Вы можете попробовать добавить эту конкретную зависимость к вашему репо (все еще убедитесь, что вы .gitignore остальной части папки node_modules) таким образом, вы всегда получаете одну и ту же версию этой конкретной зависимости, даже когда вы клонируете в новое место и делаете npm install' – James

0

Я не думаю, что есть хороший способ сделать это. Вы можете запустить npm shrinkwrap в папке проекта, а затем перейти к npm-shrinkwrap.json и найти пакет B и изменить его версию на 2.0.1. Что делает npm shrinkwrap, это блокировка версий зависимостей, поэтому, всякий раз, когда вы обновляете другие пакеты, и по-прежнему имеете ту же проблему с пакетом и B, вам нужно снова запустить npm shrinkwrap. Когда пакет B исправить проблему с версией 2.0.5 вы можете удалить npm-shrinkwrap.json.

https://docs.npmjs.com/cli/shrinkwrap