Por exemplo, quando instalo o 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.
Existe uma bandeira mágica que eu possa passar para o npm que instalará as dependências dos pares também? Não consegui encontrar um ... É tedioso copiar e colar manualmente as dependências dos pares e garantir que tenho as versões corretas.
Em outras palavras, eu prefiro não ter que fazer:
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
Qual é a melhor maneira?
[email protected]
requeres6-promise@^3.0.2
). No entanto, quero saber se existe um comando / sinalizador que instala automaticamente as dependências dos pares.npm -v
=>3.5.3
Respostas:
A instalação automática de dependências entre pares foi removida explicitamente com o npm 3, pois causa mais problemas do que tentava resolver. Você pode ler sobre isso aqui, por exemplo:
Portanto, não, pelas razões expostas, você não pode instalá-los automaticamente com o npm 3 para cima.
fonte
extraneous
pacotesEu o resolvi reescrevendo package.json com os valores exatos que os avisos eram sobre:
package.json: "es6-shim": "^ 0.33.3",
package.json: "reflect-metadata": "0.1.2",
fonte
npm cache clean
,npm install
pode ser melhor do que limpar node_modules? Eu sempre evito excluir node_modules, gosto de descobrir qual é o problema, em vez de afastar o diretório.npm install --cache /tmp/empty-cache
usar um cache temporário em vez de neutralizar o atual. npm ERR! npm ERR! Se tiver certeza de que deseja excluir todo o cache, execute novamente este comando com --force.Batota código útil neste cenário e alguns outros ...
UN── UNMET DEPENDENCY DE PARES @ angular / comum @ 4.0.2
UN── UNMET PEER DEPENDENCY @ angular / compilador @ 4.0.2
UN── UNMET PEP DEPENDENCY @ angular / compiler-cli @ 4.0.2
UN── UNMET DEPENDENCY DE PARES @ angular / core @ 4.0.2
UN── UNMET DEPENDENCY DE PARES @ angular / forms @ 4.0.2
UN── UNMET DEPENDENCY PEER @ angular / http @ 4.0.2
UN── UNMET DEPENDENCY PEER @ angular / navegador de plataforma @ 4.0.2
UN── UNMET DEPENDENCY DE PARES @ angular / dynamic-browser-dynamic @ 4.0.2>
npm install @ angular / comum @ 4.0.2 @ angular / compilador @ 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 / plataforma-navegador @ 4.0.2 @ angular / plataforma-navegador-dinâmico @ 4.0.2 --save
fonte
--save
Evidentemente, a opção não é mais necessária a partir do npm 5.0.0: stackoverflow.com/a/19578808/12484O projeto
npm-install-peers
irá detectar pares e instalá-los.Por
v1.0.1
isso, ele não suporta a escritapackage.json
automática, o que essencialmente resolveria nossa necessidade aqui.Adicione seu suporte ao problema em voo: https://github.com/spatie/npm-install-peers/issues/4
fonte
This package doesn't seem to have any peerDependencies
npm-install-peers
instalarápeerDependencies
registrado empackage.json
. Não instalarápeerDependencies
dependências comoangular2
.npm-install-peers
destina-se apenas à instalação do"peerDependencies"
listado no package.json do seu projeto. Você está tentando instalar os"peerDependencies"
listados em cada um de seusnode_modules/<package>/package.json
arquivos, não suas dependências diretas dos pares.Eu experimentei esses erros quando estava desenvolvendo um pacote npm que tinha
peerDependencies
. Eu tinha que garantir que algumpeerDependencies
também estivesse listado comodevDependencies
. O projeto não usaria automaticamente os pacotes instalados globalmente.fonte
Instale o fio e execute
global de fios adicionar install-peerdeps
fonte
Execute isto:
npm install-test
fonte