Неисправность при установке модуля башни - сбой модуля ws

Я новичок в node.js и установил его, запустив установку с веб-сайта узла. У меня была игра с установкой пакетов по всему миру (например, следует), но сейчас я пытаюсь установить модуль tower на мой Mac, например:

sudo npm install tower -g

Он устанавливает кучу вещей, а затем вылетает, с выводом

npm http 304 https://registry.npmjs.org/tinycolor
npm http 304 https://registry.npmjs.org/zeparser/0.0.5

> ws@0.4.20 install /usr/local/lib/node_modules/tower/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
> node install.js

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied

node.js:520
var cwd = process.cwd();
                  ^
Error: EACCES, permission denied
at Function.startup.resolveArgv0 (node.js:520:23)
at startup (node.js:54:13)
at node.js:611:3
npm ERR! ws@0.4.20 install: `node install.js`
npm ERR! `sh "-c" "node install.js"` failed with 11
npm ERR! 
npm ERR! Failed at the ws@0.4.20 install script.
npm ERR! This is most likely a problem with the ws package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node install.js
npm ERR! You can get their info via:
npm ERR!     npm owner ls ws
npm ERR! There is likely additional logging output above.

Если я правильно прочитал, это сбой модуля ws (websockets?).

При исследовании этой проблемы блог предложил мне добавить путь к узлу в мой.bashrc, чтобы я это сделал.

Какие-либо предложения?

2 ответа

Решение

После долгих экспериментов единственное, что мне помогло, - включить корневую учетную запись OSX, а затем:

su
npm install -g tower

sudo не работал, но su сделал.

На этой линии:

ws@0.4.20 install /usr/local/lib/node_modules/tower/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws

Мы видим, что ws установлен в /usr/local/lib, мне нужен root, чтобы написать здесь нет?

Я использую Linux, это может быть не так в Mac...

Вы должны использовать sudo npm install -g tower или установите Node.js с помощью nvm. Nvm заботится о том, чтобы модули устанавливались у вас дома, поэтому вам не нужен sudo.

Другие вопросы по тегам