Например, когда я устанавливаю Angular2:
npm install --save angular2
temp@1.0.0 /Users/doug/Projects/dougludlow/temp
├── angular2@2.0.0-beta.3
├── UNMET PEER DEPENDENCY es6-promise@^3.0.2
├── UNMET PEER DEPENDENCY es6-shim@^0.33.3
├── UNMET PEER DEPENDENCY reflect-metadata@0.1.2
├── UNMET PEER DEPENDENCY rxjs@5.0.0-beta.0
└── UNMET PEER DEPENDENCY zone.js@0.5.11
npm WARN angular2@2.0.0-beta.3 requires a peer of es6-promise@^3.0.2 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of es6-shim@^0.33.3 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of reflect-metadata@0.1.2 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of rxjs@5.0.0-beta.0 but none was installed.
npm WARN angular2@2.0.0-beta.3 requires a peer of zone.js@0.5.11 but none was installed.
Есть ли волшебный флаг, который я могу передать npm, который также установит зависимости от пиров? Я не смог найти ... Утомительно вручную копировать и вставлять зависимости между равноправными узлами и проверять правильные версии.
Другими словами, я бы предпочел не делать:
npm install --save angular2@2.0.0-beta.3 es6-promise@^3.0.2 es6-shim@^0.33.3 reflect-metadata@0.1.2 rxjs@5.0.0-beta.0 zone.js@0.5.11
Какой способ лучше?
angular2@2.0.0-beta.3
требуетсяes6-promise@^3.0.2
). Тем не менее, я хочу знать, есть ли команда / флаг, который автоматически устанавливает зависимости между равноправными узлами.npm -v
=>3.5.3
Ответы:
Автоматическая установка одноранговых зависимостей была явно удалена с помощью npm 3, так как это вызывает больше проблем, чем пыталось решить. Вы можете прочитать об этом здесь, например:
Так что нет, по указанным причинам вы не можете установить их автоматически с npm 3 и выше.
источник
extraneous
пакетыЯ решил это, переписав package.json с точными значениями предупреждений:
package.json: "es6-shim": "^ 0.33.3",
package.json: "отражать-метаданные": "0.1.2",
источник
npm cache clean
,npm install
может быть лучше, чем стирание node_modules? Я всегда воздерживаюсь от удаления node_modules, мне нравится выяснять, в чем проблема, а не уничтожать каталог.npm install --cache /tmp/empty-cache
использовать временный кэш вместо обнуления реального. нпм ERR! нпм ERR! Если вы уверены, что хотите удалить весь кэш, повторите команду с параметром --force.Чит-код полезен в этом сценарии и некоторых других ...
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>
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
, очевидно, больше не требуется с npm 5.0.0: stackoverflow.com/a/19578808/12484Проект
npm-install-peers
обнаружит пиров и установит их.По состоянию на
v1.0.1
это не поддерживает обратную запись вpackage.json
автоматическом режиме, что по существу решило бы нашу потребность здесь.Пожалуйста, добавьте вашу поддержку для выпуска в полете: https://github.com/spatie/npm-install-peers/issues/4
источник
This package doesn't seem to have any peerDependencies
npm-install-peers
установятpeerDependencies
зарегистрированного вpackage.json
. Он не будет устанавливатьpeerDependencies
зависимости, такие какangular2
.npm-install-peers
предназначен только для установки"peerDependencies"
перечисленных в package.json вашего проекта. Вы пытаетесь установить"peerDependencies"
перечисленные в каждом из васnode_modules/<package>/package.json
файлы, а не ваши прямые зависимости.Я столкнулся с этими ошибками, когда разрабатывал пакет npm
peerDependencies
. Я должен был убедиться, что любой изpeerDependencies
них также был указан какdevDependencies
. Проект не будет автоматически использовать глобально установленные пакеты.источник
Установите пряжу и запустите
глобальная пряжа добавить install-peerdeps
источник
Выполните это:
npm install-test
источник