При установке пакета с помощью NPM вы можете сказать ему использовать другую версию одной из его зависимостей?

Скажем, вы хотите установить библиотекуlib-a который имеет зависимостиdep-1 а такжеdep-2, Еслиlib-a объявил в своем package.json использовать версиюdep-2 это устарело (скажем, это не работает на узле 0.8.0, который только что вышел), но есть ветвьdep-2 который работает с узлом 0.8.0 - имя веткиnode0.8.0.

Итак, пакеты в уравнении:

git://github.com/user-a/lib-a
git://github.com/user-b/dep-1
git://github.com/user-c/dep-2
git://github.com/user-c/dep-2#node0.8.0

Есть ли способ сказать NPM для установкиlib-a, но использоватьdep-2#node0.8.0 вместоdep-2?

С помощью NPM вы можете установить определенную ветку проекта следующим образом:

npm install git://github.com/user-c/dep-2#node0.8.0

И если бы я должен был настроить package.json изlib-aВы могли бы сказать это использоватьdep-2#node0.8.0 как это:

{
  "name": "lib-a",
  "dependencies": {
    "dep-1": ">= 1.5.0",
    "dep-2": "git://github.com/user-c/dep-2#node0.8.0"
  }
}

Изменяя package.json, вы можете запустить

npm install lib-a

и он установит совместимый узел 0.8.0dep-2 ветка. Но это требует, чтобы у меня был доступ к изменениюlib-a, что для моего конкретного случая я не имею. Технически я мог раскошелитьсяlib-a и внесите вышеуказанные изменения в package.json. Но в моем конкретном случае,lib-a это зависимостьanother библиотека, так что я должен раскошелиться на проект, на который она ссылается, и так далее ...

Таким образом, вопрос в том, есть ли способ сказать NPM для установкиlib-aи скажи ему использоватьnode0.8.0 филиалdep-2? Что-то вроде этого:

npm install lib-a --overrides dep-2:git://github.com/user-c/dep-2#node0.8.0

Это было бы круто. Если это невозможно, это было бы полезно узнать, поэтому я могу подготовиться к тому, чтобы раскошелиться / настроить цепочку проектов.

Ответы на вопрос(1)

Ваш ответ на вопрос