Npm не работает, всегда получайте эту ошибку → Ошибка: не удается найти модуль 'are-we-there-yet'
Я попытался установить grunt на mac с Yosemite. node уже установлен в новейшей версии. если я нахожу "node -v" в терминале, я получаю строку v0.12.5. это хорошо. но когда я хочу что-то установить с npm, я получаю только ошибку...
Я попробовал "sudo npm install -g grunt-cli", "sudo npm install npm -g", а также с "npm -v", я всегда получаю эту ошибку...
Error: Cannot find module 'are-we-there-yet'
at Function.Module._resolveFilename (module.js:336:15)
at Function.Module._load (module.js:278:25)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object.<anonymous> (/usr/local/Cellar/node/0.10.22/lib/node_modules/npm/node_modules/npmlog/log.js:2:16)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
кто-нибудь знает, в чем проблема или лучше решение?
Ответы
Ответ 1
Вы нарушили npm
, удалив некоторые из его зависимостей.
are-we-there-yet
является зависимостью npmlog
, которая является самой зависимой от npm
, и вы как-то ее удалили. Обычным простым решением для таких случаев является переустановка пакета, но это не работает, если npm
не может работать. К счастью, npm
tarball поставляется с зависимостями и, следовательно, установка npm
с нуля так же просто, как распаковка tarball.
1) Перейдите в глобальный каталог node_modules
(что бы npm root -g
напечатать, если вы могли его запустить):
$ cd /usr/local/lib/node_modules
2) Удалите сломанную директорию npm
или переместите ее где-нибудь в другом месте (обратите внимание, что вам может потребоваться поднять права для этого и следующие шаги):
$ mv npm /tmp
3) Загрузите и распакуйте свежий npm
из реестра (замените версию, которую вы хотите установить, например 3.10.8
):
$ curl -L registry.npmjs.com/npm/-/npm-{VERSION}.tgz | tar xz --transform="s:^package:npm:"
Вы можете автоматизировать некоторые из них с помощью этой установки script:
$ curl -L https://www.npmjs.com/install.sh | sh
В этот момент npm
должен снова работать.
Ответ 2
Перейдите в глобальный каталог node_modules (npm root -g, если вы не знаете)
$ cd /usr/local/lib/node_modules
curl -L https://www.npmjs.com/install.sh | sh
Ответ 3
Я пытаюсь лихорадочно добраться до последней версии node и npm на моем компьютере centos 7.
К сожалению, с этой ошибкой я пробовал почти неделю. И я наконец нашел решение, которое работает.
Если ваш npm в настоящее время сломан, проще всего просто установить рабочую версию.
Я установил из кода. Предполагая, что git установлен, следующие команды выполнит эту цель
cd ~
git clone https://github.com/nodejs/node.git nodejs_code
cd nodejs_code
./configure
make
make install
После того, как вы установили новую копию npm и node, которая, кстати, не является стабильной версией (вместо этого ее край кровотока прямо из источника).
Установленная версия node на момент написания этой версии была 5.0.0-pre, которая для меня слишком новая, и npm была версией 2.14.4, которая для меня слишком старческая.
Чтобы перейти к последней версии на node, я установлю пакет 'n', используя npm. Используя n, я установлю последнюю версию node.
npm install -g n
n stable
В случае пользователя root (который я использую для установки глобальных пакетов) мне нужно добавить следующую строку в мой файл ~/.bashrc
, который позволит корневому пользователю получить доступ к командам в /usr/local/bin. (Вам может не понадобиться этот шаг)
export PATH=/usr/local/bin:$PATH
В этот момент моя версия node равна 4.0.0, которая является последней стабильной версией node.
теперь обновить npm, что было самым неприятным в истории.
Обновление непосредственно к самой новой версии всегда приводило к "есть-мы-там-все же", о которых я мог только предположить: "НЕТ, и Quit Asking, или я включу этот node вокруг"
Вместо этого я обнаружил, что сначала установка версии 3.3.3 решит эту проблему.
npm install -g [email protected]
теперь установлена версия 3.3.3 и работает без ошибки "are-we-there-yet".
Слава богу. Держите руки в себе, а ваши ремни привязаны к детям, потому что мы почти там.....
npm install -g npm
и с этой последней командой я смог использовать последнюю версию npm с последней стабильной версией node. Который на момент написания это 3.3.5
Далее, мои команды следующие.
n stable
npm install -g npm
каждый раз, когда я запускаю их здесь, я получаю невозмутимые поездки в нпм без детей, жалующихся на спину.
Примечание
Поскольку я модерирую несколько серверов, ни один из которых не поставляется с node по умолчанию, мне приходится выполнять эту задачу снова и снова.
Поэтому я взял на себя обязательство превратить эти инструкции в script.
Наслаждайтесь:
importnode.sh
#!/bin/bash
cd ~
git clone https://github.com/nodejs/node.git nodejs_code
cd nodejs_code
git reset --hard
git pull origin master
./configure
make
make install
if [[ `cat ~/.bashrc |grep -E "PATH.*/usr/local/bin:.*"` ]];
then
echo "Already Done";
else
echo "export PATH=/usr/local/bin:\$PATH" >> ~/.bashrc;
export PATH=/usr/local/bin:$PATH;
fi;
npm install -g n
n stable
npm install -g [email protected]
npm install -g npm
Единственное, что осталось сделать после добавления в nodeimport.sh, это сделать его исполняемым и выполнить.
$ chmod +x importnode.sh
$ ./importnode.sh
Подождите, и все будет установлено.
Ответ 4
Что сказал eush77, но если вы в Windows:
загрузить последний пакет из
https://nodejs.org/download/release/npm/
распаковать и заменить каталог "npm" в каталоге nodejs node -modules
(по умолчанию C:\Program Files\nodejs\ node_modules)
Ответ 5
Я выполнил приведенные выше инструкции (что сказал eush77), чтобы удалить папку npm в папке node_modules. Но в результате этого сообщения об ошибке остается неработающая ссылка.
/usr/local/bin/npm: нет такого файла или каталога
так что удалите неработающую ссылку:
rm /usr/local/bin/npm
а затем укажите его в нужное место:
sudo ln -s /usr/lib/node_modules/npm/bin/npm-cli.js /usr/local/bin/npm
Ответ 6
Вы также можете переустановить node
из https://nodejs.org/en/download/current/
Ответ 7
Для меня это связано с повреждением установок и, возможно, репозиториев ubuntu, которые не являются совместимыми или последними. Ниже приведена рабочая версия npm/ node:
sudo curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
sudo apt-get install -y nodejs
https://github.com/nodesource/distributions
Ответ 8
Я получил его reset с помощью официального пакета установки: https://nodejs.org/en/
Игра с n и nvm в конечном итоге повредила пакеты node_modules для меня, предоставив пакеты, несовместимые с текущей версией Node.
Я подозреваю, что он будет работать в других средах, поскольку он соединяет как Node, так и npm install.
Ответ 9
Даже у меня была такая же проблема. Самый простой способ решить ниже шаги работал у меня.
1) удалите Nodejs.
2) Перейдите к C:/User/AppData/Roaming.
3) Удалите каталог npm
.
4) Переустановите Nodejs
(последняя версия v6.11.3, включает npm 3.10.10).
5) Готово Теперь попробуйте проверить (npm -v
) будет нормально работать.