Sono in esecuzione NPM versione 3.6.0 e il nodo verison 5.6.0 su Windows 10:aggiornamento npm -g nulla fa anche se ho superata pacchetti
> npm version
{ npm: '3.6.0',
ares: '1.10.1-DEV',
http_parser: '2.6.1',
icu: '56.1',
modules: '47',
node: '5.6.0',
openssl: '1.0.2f',
uv: '1.8.0',
v8: '4.6.85.31',
zlib: '1.2.8' }
>
Ho un certo numero di pacchetti NPM installati a livello globale:
> npm ls -g --depth=0
C:\Users\Klas\AppData\Roaming\npm
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
+-- [email protected]
`-- [email protected]
>
Se corro npm outdated -g
diversi pacchetti sono elencati come obsoleto.
> npm outdated -g
Package Current Wanted Latest Location
jspm 0.16.25 0.16.25 0.16.29
live-server 0.9.0 0.9.0 0.9.2
protractor 3.0.0 3.0.0 3.1.1
tslint 3.2.2 3.2.2 3.4.0
webpack 1.12.11 1.12.11 1.12.13
Quando eseguo npm update -g
ritorna (dopo un paio di secondi) senza alcun messaggio di avviso o errore. Tuttavia, nessun pacchetto è stato aggiornato.
> npm update -g
>
Come interpreto this issue, npm update -g
dovrebbe funzionare, e dovrebbero aggiornare i pacchetti globali di alto livello. Ma non sembra funzionare per me.
Se corro (grazie a Benjamin Kaiser per la punta):
> npm update -g --loglevel verbose
ho un sacco di uscita. Questo sembra essere il più rilevante:
npm verb outdated not updating tslint because it's currently at the maximum version
that matches its specified semver range
Ancora non capisco. Dato che i pacchetti sono globali, non esiste un range di semiraggi specifico?
Esecuzione di aggiornamento su un particolare pacchetto non aiuta:
> npm update -g tslint
>
Nemmeno specificando una versione non alcuna differenza:
> npm update -g [email protected]
>
Ma anche se che aveva funzionato avrei preferito non dover aggiornare esplicitamente ciascun pacchetto. Per me, una caratteristica importante di un gestore di pacchetti dovrebbe essere quella di rendere più semplice l'aggiornamento di tutto in una volta.
This issue suoni correlati. Ma quando guardo lo tslint npm module, "l'ultimo" sembra essere 3.4.0. Quindi, perché nessun aggiornamento?
Avete provato ad aggiungere il flag '--loglevel verbose' per vedere se qualcosa potrebbe accadere ad un livello di registro più basso? Da tutto ciò che hai detto, la tua versione di npm dovrebbe essere aggiornata per eseguire quel comando. –
Grazie a @BenjaminKaiser, ho esteso la mia domanda con i risultati dell'impostazione di questo flag –
Questo è super strano, hai ragione che è globale e come tale non dovrebbe avere un semiver. Potrei provare a cancellare i pacchetti globali e ricominciare da capo. Forse reinstallando npm anche alla versione più recente (3.7.4 credo) –