Я запускаю npm версии 3.6.0 и node verison 5.6.0 в Windows 10:
> 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' }
>
У меня есть несколько глобально установленных пакетов npm:
> 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]
>
Если я запустил npm outdated -g
, некоторые пакеты перечислены как устаревшие.
> 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
Когда я запускаю npm update -g
, он возвращается (через пару секунд) без предупреждения или сообщения об ошибке. Однако пакеты не обновлялись.
> npm update -g
>
Как я интерпретирую этот вопрос, npm update -g
должен работать и должен обновлять глобальные пакеты верхнего уровня. Но, похоже, это не работает для меня.
Если я забегу (спасибо Бенджамину Кайзеру за подсказку):
> npm update -g --loglevel verbose
Я получаю много результатов. Это, по-видимому, наиболее актуально:
npm verb outdated not updating tslint because it currently at the maximum version
that matches its specified semver range
Я до сих пор не совсем понимаю. Поскольку пакеты являются глобальными, нет заданного диапазона semver?
Выполнение обновления на конкретном пакете не помогает:
> npm update -g tslint
>
Даже указание версии не имеет никакого значения:
> npm update -g [email protected]
>
Но даже если бы это сработало, мне бы не пришлось явно обновлять каждый пакет. Для меня главной особенностью диспетчера пакетов должно быть упрощение обновления всего сразу.
Эта проблема звучит. Но когда я смотрю на модуль tslint npm, "последним" кажется 3.4.0. Итак, почему обновление не было?