Я пытаюсь глобально установить только что опубликованный модуль npm. Каждый раз, когда я пытаюсь установить из npm или из папки, я получаю эту ошибку.
npm ERR! Error: ENOENT, chmod '/usr/local/lib/node_modules/takeapeek/lib/cmd.js'
npm ERR! If you need help, you may report this log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <npm-@googlegroups.com>
npm ERR! System Linux 3.8.0-19-generic
npm ERR! command "node" "/usr/local/bin/npm" "install" "-g" "takeapeek"
npm ERR! cwd /home/giodamlio
npm ERR! node -v v0.10.6
npm ERR! npm -v 1.3.6
npm ERR! path /usr/local/lib/node_modules/takeapeek/lib/cmd.js
npm ERR! code ENOENT
npm ERR! errno 34
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /home/giodamlio/npm-debug.log
npm ERR! not ok code 0
Я использую sudo и трижды проверил все в пакете, все должно работать. Я немного поискал и увидел несколько похожих случаев, ни один из которых не был решен. Вот что я пробовал.
- Обновить npm (
sudo npm install -g npm
) - Очистить глобальный кеш npm (
sudo npm cache clear
) - Очистить пользовательский кеш npm (
npm cache clear
)
Я заметил, что ошибка связана с файлом, который я привязываю к пути, особенно когда npm пытался выполнить команду chmod. Это не должно быть проблемой, my lib/cli.js
имеет обычные разрешения, а npm имеет права суперпользователя во время этой установки.
Покопавшись в документах npm, я нашел вариант, который не позволял npm создавать ссылки на bin ( --no-bin-links
), когда я пытался установить с ним, он работал нормально.
Так в чем же дело? Это какая-то странная ошибка, у которой пока нет решения?
Изменить: для справки, вот модуль, который я загрузил
--no-bin-links
просто останавливает npm от символических ссылок файлов в bin
хэше package.json на путь при глобальной установке.