Na przykład, gdy instaluję 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.
Czy istnieje magiczna flaga, którą mogę przekazać do npm, która również zainstaluje zależności równorzędne? Nie udało mi się go znaleźć ... Żmudne jest ręczne kopiowanie i wklejanie zależności równorzędnych i upewnianie się, że mam odpowiednie wersje.
Innymi słowy, wolałbym nie robić:
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
Jaki jest lepszy sposób?
[email protected]
wymagaes6-promise@^3.0.2
). Chcę jednak wiedzieć, czy istnieje polecenie / flaga, która automatycznie instaluje zależności równorzędne.npm -v
=>3.5.3
Odpowiedzi:
Automatyczna instalacja zależności równorzędnych została jawnie usunięta za pomocą npm 3, ponieważ powoduje więcej problemów niż próbowała rozwiązać. Możesz przeczytać o tym tutaj na przykład:
Więc nie, z podanych powodów nie możesz zainstalować ich automatycznie z npm 3 w górę.
źródło
extraneous
pakietyRozwiązałem to, przepisując pakiet.json z dokładnymi wartościami ostrzeżeń o:
package.json: "es6-shim": "^ 0.33.3",
package.json: „reflect-metadata”: „0.1.2”,
źródło
npm cache clean
,npm install
może być lepsze niż czyszczenie modułów node_modules? Zawsze powstrzymuję się od usuwania modułów node_modules, wolę dowiedzieć się, o co chodzi, niż wymazać katalog.npm install --cache /tmp/empty-cache
użyć tymczasowej pamięci podręcznej zamiast nukania rzeczywistej pamięci podręcznej. npm ERR! npm ERR! Jeśli masz pewność, że chcesz usunąć całą pamięć podręczną, ponownie uruchom to polecenie, używając opcji --force.Cheat code pomocny w tym scenariuszu i niektórych innych ...
├── UNMET PEER DEPENDENCY @ kątowy / wspólny @ 4.0.2
├── UNMET PEER DEPENDENCY @ angular / compiler @ 4.0.2
├── UNMET PEER DEPENDENCY @ angular / compiler-cli @ 4.0.2
├── UNMET PEER DEPENDENCY @ kątowy / rdzeniowy @ 4.0.2
├── UNMET PEER DEPENDENCY @ kątowa / formy @ 4.0.2
├── UNMET PEER DEPENDENCY @ kątowa / http @ 4.0.2
├── UNMET PEER DEPENDENCY @ angular / platform-browser @ 4.0.2
├── UNMET PEER DEPENDENCY @ 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 / form @ 4.0.2 @ angular / http @ 4.0 .2 @ angular / platforma-browser @ 4.0.2 @ angular / platform-browser-dynamic @ 4.0.2 --save
źródło
--save
najwyraźniej nie jest już wymagana od wersji npm 5.0.0: stackoverflow.com/a/19578808/12484Projekt
npm-install-peers
wykryje partnerów i zainstaluje je.Ponieważ
v1.0.1
nie obsługuje automatycznego zapisywaniapackage.json
, co zasadniczo rozwiązałoby naszą potrzebę tutaj.Dodaj swoje wsparcie do wydania w locie: https://github.com/spatie/npm-install-peers/issues/4
źródło
This package doesn't seem to have any peerDependencies
npm-install-peers
zainstalujępeerDependencies
zarejestrowany wpackage.json
. Nie zainstalujepeerDependencies
zależności takich jakangular2
.npm-install-peers
jest przeznaczony tylko do instalacji"peerDependencies"
wymienionych w pakiecie.json projektu. Próbujesz zainstalować"peerDependencies"
wymienione w każdym znode_modules/<package>/package.json
plików, a nie bezpośrednie zależności równorzędne.Te błędy występowały podczas tworzenia pakietu npm, który miał
peerDependencies
. Musiałem upewnić się, że wszystkiepeerDependencies
są również wymienione jakodevDependencies
. Projekt nie używałby automatycznie globalnie zainstalowanych pakietów.źródło
Zainstaluj przędzę i uruchom
przędza globalna dodaj install-peerdeps
źródło
Wykonaj to:
npm install-test
źródło