Как установить зависимости одноранговых связей npm автоматически?

Например, когда я устанавливаю Angular2:

npm install --save angular2
[email protected] /Users/doug/Projects/dougludlow/temp
├── [email protected] 
├── UNMET PEER DEPENDENCY [email protected]^3.0.2
├── UNMET PEER DEPENDENCY [email protected]^0.33.3
├── UNMET PEER DEPENDENCY [email protected]
├── UNMET PEER DEPENDENCY [email protected]
└── UNMET PEER DEPENDENCY [email protected]

npm WARN [email protected] requires a peer of [email protected]^3.0.2 but none was installed.
npm WARN [email protected] requires a peer of [email protected]^0.33.3 but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.

Есть ли волшебный флаг, который я могу передать в npm, который также установит равноправные зависимости? Я не смог найти его... Мне было тяжело вручную копировать и вставлять одноранговые зависимости и убедиться, что у меня есть правильные версии.

Другими словами, я бы предпочел не делать:

npm install --save [email protected] [email protected]^3.0.2 [email protected]^0.33.3 [email protected] [email protected] [email protected]

Каков лучший способ?

Ответ 1

Автоматическая установка одноранговых зависимостей была явно удалена с помощью npm 3, так как это вызывало больше проблем, чем пыталось решить. Вы можете прочитать об этом здесь, например:

Так что нет, по указанным причинам вы не можете установить их автоматически с npm 3 и выше.

Ответ 2

Я решил его переписать package.json с точными предупреждениями о значениях:

npm WARN [email protected] requires a peer of [email protected]^0.33.3 but none was installed.

package.json: "es6-shim": "^ 0.33.3",

npm WARN [email protected] requires a peer of [email protected]

package.json: "reflect-metadata": "0.1.2",

Delete node_modules directory

npm install

Ответ 3

Проект npm-install-peers обнаружит пиров и установит их.

Начиная с v1.0.1 он не поддерживает автоматическую обратную запись в package.json, что, по сути, решило бы нашу проблему.

Пожалуйста, добавьте вашу поддержку для выпуска в полете: https://github.com/spatie/npm-install-peers/issues/4

Ответ 4

Чит-код полезен в этом сценарии и некоторых других...

M── UNMET PEER ЗАВИСИМОСТЬ @angular/common @4.0.2

M── UNMET PEER ЗАВИСИМОСТЬ @angular/compiler @4.0.2

M── UNMET PEER ЗАВИСИМОСТЬ @angular/compiler-cli @4.0.2

M── UNMET PEER ЗАВИСИМОСТЬ @angular/core @4.0.2

M── UNMET PEER ЗАВИСИМОСТЬ @angular/forms @4.0.2

M── UNMET PEER ЗАВИСИМОСТЬ @angular/http @4.0.2

M── UNMET PEER ЗАВИСИМОСТЬ @angular/platform-browser @4.0.2

UN── UNMET PEER ЗАВИСИМОСТЬ @angular/platform-browser-dynamic @4.0.2>

  1. скопируйте и вставьте ошибку в редактор кода.
  2. Выделите ненужную часть с вашим curser. В этом случае "НЕЗАВИСИМАЯ НЕЗАВИСИМОСТЬ"
  3. Нажмите команду + d несколько раз.
  4. Нажмите удалить дважды. (Нажмите пробел, если вы случайно выделили 'M── НЕЗАВИСИМАЯ ОТНОШЕНИЕ К ПИРУ'.)
  5. Нажмите один раз. Добавить 'npm install'
  6. Нажмите один раз. Добавить '--save
  7. Скопируйте ваши вещи обратно в Cli и запустите

npm install @angular/common @4.0.2 @angular/compiler @4.0.2 @angular/compiler-cli @4.0.2 @angular/core @4.0.2 @angular/forms @4.0.2 @angular/http @4.0.2 @angular/platform-browser @4.0.2 @angular/platform-browser-dynamic @4.0.2 --save