Как установить зависимости одноранговых связей 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>
- скопируйте и вставьте ошибку в редактор кода.
- Выделите ненужную часть с вашим curser. В этом случае "НЕЗАВИСИМАЯ НЕЗАВИСИМОСТЬ"
- Нажмите команду + d несколько раз.
- Нажмите удалить дважды. (Нажмите пробел, если вы случайно выделили 'M── НЕЗАВИСИМАЯ ОТНОШЕНИЕ К ПИРУ'.)
- Нажмите один раз. Добавить 'npm install'
- Нажмите один раз. Добавить '--save
- Скопируйте ваши вещи обратно в 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