Неисправность при установке модуля башни - сбой модуля 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.