Ответ 1
Вот шаги, которые мне помогли:
$ sudo rm -rf /usr/local/bin/npm
$ sudo rm -rf /usr/local/lib/node_modules/npm
$ brew uninstall node
$ brew install node
Сегодня мой первый день моей первой работы и после настройки моей среды разработки, обновив node и npm на моем Mac (OSX), я, кажется, что-то сломал. Каждый раз, когда я пытаюсь использовать npm в моей командной строке (npm init, npm install и т.д.), Я получаю это сообщение об ошибке:
module.js: 339
throw err;
Ошибка: не удается найти модуль 'npmlog'
в Function.Module._resolveFilename (module.js: 337: 15)
в Function.Module._load (module.js: 287: 25)
в Module.require(module.js: 366: 17)
при требовании (module.js: 385: 17)
в/usr/local/lib/node_modules/npm/bin/npm-cli.js:20:13
в объекте. (/usr/local/lib/ node_modules/npm/bin/npm- > cli.js:76:3)
в Module._compile (module.js: 425: 26)
в Object.Module._extensions..js(module.js: 432: 10)
на Module.load(module.js: 356: 32)
в функции .Module._load (module.js: 311:12)
Не так много сообщений об ошибке, и трассировка стека не помогает мне так много. Вот что я пробовал:
npm <something>
для решения своей проблемы, чего я не могу сделать.sudo npm uninstall npm -g
, не работают.npmlog
из каталога .npm
, а затем снова клонирован репозиторий github непосредственно в каталог.Надеюсь, один из вас столкнулся с этим раньше или у него есть идея, как подойти к нему. Любая помощь приветствуется.
Вот шаги, которые мне помогли:
$ sudo rm -rf /usr/local/bin/npm
$ sudo rm -rf /usr/local/lib/node_modules/npm
$ brew uninstall node
$ brew install node
Вот одна хорошая ссылка Fixing npm On Mac OS X for Homebrew Users
.
со следующими командами при попытке обновить node.js
под mac
rm -rf /usr/local/lib/node_modules brew uninstall node brew install node --without-npm echo prefix=~/.npm-packages >> ~/.npmrc curl -L https://www.npmjs.com/install.sh | sudo sh
Попробуйте curl -0 -L http://npmjs.org/install.sh | sudo sh
выполнить переадресацию. Также обратите внимание, что я добавил sudo перед командой sudo sh в зависимости от ваших прав пользователя.
Я только что столкнулся с этой проблемой на Mac, и при ближайшем рассмотрении мне кажется, что проблема в том, что внутри каталога приложения Node при определенных обстоятельствах ссылка в каталоге node/bin
на npm
в lib/node_modules/npm/bin
заменяется самим файлом, и поэтому он терпит неудачу (и почему все различные методы script исправляют его, потому что они правильно сохраняют ссылку на файл).
Если я скопирую содержимое из node-v6.9.4-darwin-x64
с помощью cp
, тогда я получу эту проблему, но если я скопирую файлы с помощью Finder, то я этого не сделаю. Таким образом, вы можете исправить это путем ручного воссоздания ссылки с помощью ln
, если вы не хотите использовать Finder (альтернативно, mv
или rsync -a
тоже могут работать, я их не тестировал).
Надеюсь, это поможет кому-то прийти сюда для этой проблемы.
Изменить: я случайно обнаружил причину проблемы на компьютерах Mac (по моему конкретному сценарию, во всяком случае): я всегда использовал cp -r
для копирования каталогов. Это потому, что я стар и больше не изучаю новые вещи. Правильный способ cp -r
, который правильно копирует все, как и должно быть.
Я не обязательно "исправлял" проблему столько, сколько начинал. Я использовал этот пост, чтобы сделать это: Как полностью удалить Node.js и переустановить с начала (Mac OS X)
Если кто-то еще знает, как на самом деле исправить проблему или знает, что я сделал, чтобы вызвать ее, мне все равно будет очень интересно.
в моем состоянии, я просто brew uninstall node
и скачать с официального сайта и работал у меня
Я столкнулся с этой же ошибкой. Это было на сервере, не подключенном к Интернету. Я видел поток на Github, который упоминал, что иногда символические ссылки могут быть удалены при выполнении копий или других операций с файлами. Поэтому я нашел "find" в каталоге node для символических ссылок проблемного сервера и нигде не нашел. Выполнение этого же на рабочем сервере обнаружило символические файлы ссылок.
Я пошел в NODE_HOME/bin и сделал ls -l
Конечно, у меня был файл для npm. Выполняли те же действия на рабочем сервере, и файл npm был символической ссылкой. Чтобы исправить проблемный сервер, я выполнил следующее:
rm npm
ln -s../lib/ node_modules/npm/bin/npm-cli.js npm
Получена та же ошибка при установке транспортира в REDHAT linux обновлена
NPM
файл
/node -v6.10.2-Linux-x64/bin/НМП
для пути к модулю, как показано ниже:
Код до
var log = require('npmlog')
Код после
var log = require('/node-v6.10.2-linux-x64/lib/node_modules/npm/node_modules/npmlog')
Для меня я запустил brew uninstall node
, а затем загрузил последнюю версию из nodejs.org, и она сработала.