Совместный вопрос управления зависимостями - PullRequest
1 голос
/ 24 мая 2019

Я использую JointJS в качестве пакета NPM, и он работает нормально.Моя проблема заключается в управлении его зависимостями.Прямо сейчас он создал свою собственную папку jquery внутри своей собственной папки node_modules.Он использует этот jQuery, но у меня есть jQuery в качестве папки «верхнего уровня» рядом с JointJS внутри моей папки node_modules верхнего уровня.Как заставить JointJS использовать jQuery верхнего уровня, чтобы я мог удалить папку jquery внутри JointJS?

ProjectFolder
    node_modules
        jointjs
            node_modules
                jquery (want to delete)
        jquery

1 Ответ

1 голос
/ 27 мая 2019

Короткая версия предназначена для запуска npm dedupe после того, как вы сделали npm install

Это отсканирует ваше дерево зависимостей и поднимет / укажет вложенные зависимости на зависимости, которые находятся на верхнем уровне вашего дерева зависимостей , где оно может .

Я говорю «где это возможно», потому что для того, чтобы сделать это, потребуется, чтобы версия jQuery, определенная в your package.json, соответствовала ограничениям версии jQuery, определенной в package.json JointJS. Например, v2.2.1 для JointJS требует jQuery 3.3.1 . Если ваша версия jQuery отличается от этого на всех , npm dedupe не удалит вложенную зависимость jQuery.

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

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

Это сообщение в блоге было чрезвычайно полезно, чтобы помочь мне понять, как работает разрешение зависимостей npm, и зачем нужен dedupe.

...