У меня возникли проблемы с npm в ящике для бродяг, который я устанавливаю. Я заметил, что в npm версия несколько устарела, поэтому я хотел проверить проблему с помощью последней версии.
Насколько я понимаю, вы должны иметь возможность обновлять npm с помощью npm install -g npm, но команда не оказывает никакого влияния на npm используется:
Когда вы впервые делаете npm install -g npm, оболочка (Bash) будет искать npm на своем пути найди /usr/bin/npm устанавливается системным пакетом, а затем используйте его для установки новой версии npm. Новая версия будет установлена в /usr/local/bin/npm.
Теперь ваш путь должен иметь /usr/local/bin/ до /usr/bin/, так что вы могли бы подумать , что теперь он получит обновленную версию в /usr/local/bin/, верно? Неправильный.
Bash будет КЭШИРОВАТЬ пути к исполняемым файлам после их первого поиска, поэтому, когда вы говорите npm во 2-й раз он по-прежнему использует кэшированную версию, которую он впервые обнаружил как /usr/bin/npm.
Чтобы сказать Bash очистить этот кэш и снова просмотреть путь, вы должны выполнить hash -r.
После установки npm и, сделав это, моя оболочка приняла новую версию npm просто отлично.
Большую часть времени я не могу обновить его с помощью глобальной команды. Однако то, что сработало для меня, - это обновление пакета из источника всех системных узлов-модулей:
Узнайте, где установлен npm, и перейдите в эту папку
# Below command shows the destination (remove sed pipe to see the full path of npm-cli)whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{19\}$//'# Go in there and install it manually. In my case it was the folder below... # NOTE: on mac its in /usr/local/libcd /usr/libsudo npm install npm@latest
Узрите мощную универсальную линейку для всех (особенно ленивых людей).
cd `whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//'`; cd ..; sudo npm install npm@latest
Любой трюк, который вы делаете, не используйте Git, я рекомендую запускать их в Composer terminal. Это наверняка сработает. Это сделало для меня то, что npm install npm -g.
Я не вижу никаких причин переустанавливать что-то, что уже готово, просто используйте обновление -g встроенный в менеджер пакетов для обновления самого себя:
Убедитесь, что глобальный флаг - г находится перед упаковками. В прошлом у меня были проблемы с тем, что npm не регистрировал флаг после списка пакетов.
Я столкнулся с этой проблемой. Моя текущая версия npm была 3.3.12 но я пытался sudo npm install npm -g, sudo npm update npm -g ..ничего не получалось.. пока я npm --version Я всегда получаю 3.3.12. Я искал каталоги в своей Ubuntu 15.04 и нашел две версии npm в разных каталогах.
v3.3.12 в /usr/local/lib/node_modules/npm
v3.6 в /usr/lib/node_modules/npm
Итак, я сделал копию версии 3.3.12 с mv npm npm_3312 в то время как я был в более старом каталоге npm. Тогда я это сделал sudo cp -r npm /usr/local/lib/node_modules/ пока я был в каталоге '/usr/lib/node_modules'.. Я сделал свой npm --version и я получил 3.6.0
# Note the new setup script name for Node.js v0.12curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -# Then install with:sudo apt-get install -y nodejs