Получение ошибок при попытке установки socket.io глобально



Я новичок в node, npm, socket.io нашел много руководств, которые довольно полезны,но я сталкиваюсь с некоторыми ошибками, которые я не понимаю причину, надеюсь, вы можете помочь мне.



npm install socket.io -g


Возвращается ...



npm http GET https://registry.npmjs.org/socket.io
npm http 304 https://registry.npmjs.org/socket.io
npm ERR! error installing [email protected]
npm ERR! error rolling back [email protected] Error: EACCES, unlink '/usr/local/lib/node_modules/socket.io/.npmignore'
npm ERR! Error: EACCES, unlink '/usr/local/lib/node_modules/socket.io/.npmignore'
npm ERR! Report this *entire* log at:
npm ERR! <http://github.com/isaacs/npm/issues>
npm ERR! or email it to:
npm ERR! <[email protected]>
npm ERR!
npm ERR! System Darwin 10.8.0
npm ERR! command "node" "/usr/local/bin/npm" "install" "socket.io" "-g"
npm ERR! cwd /Users/Kinglee
npm ERR! node -v v0.6.14
npm ERR! npm -v 1.1.0-beta-4
npm ERR! path /usr/local/lib/node_modules/socket.io/.npmignore
npm ERR! code EACCES
npm ERR! message EACCES, unlink '/usr/local/lib/node_modules/socket.io/.npmignore'
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR! /Users/Kinglee/npm-debug.log


Однако, когда я сделал npm install socket.io, ошибки не было, все было хорошо.



Извините, что забыл добавить эту информацию здесь ...



Я на самом деле пытался sudo npm install socket.io и он установлен без ошибок, но когда я пытаюсь cd ~/node_modules, я не вижу socket.io, эта причина 'socket.io not found' error, Когда я пытаюсь сделайте require('socket.io') , Как я следую этому учебнику здесь (http://blog.koostudios.com/?p=470 )



Тут какой-то растерянный парень: /

712   2  

2 ответов:

Самая важная часть:

EACCES, unlink   '/usr/local/lib/node_modules/socket.io/.npmignore'

Это означает, что у вас нет разрешения на удаление этого файла.

Я предполагаю, что это означает, что вы выполнили команду от имени своей стандартной учетной записи пользователя, которая не будет иметь разрешения на запись в /usr/.

Добавьте sudo к своей команде, чтобы повторно запустить команду с правами администратора:

sudo npm install socket.io -g

Ваша локальная конфигурация может не иметь /usr/local/lib/node_modules/ в расположениях загрузки модулей по умолчанию node. Путь загрузки модуля управляется через переменная окружения NODE_PATH (перед запуском node) или переменная require.paths (после запуска node). Поскольку я предпочитаю отделять локальную конфигурацию от программы, я бы предпочел установить переменную среды для изменения путей, хотя другой механизм может быть полезен для долгоживущих приложений, которые должны оставаться активными даже при изменении среды. (Это определенно передовое использование.)

Чтобы изменить переменную NODE_PATH для одного экземпляра, sh и ее производные будут позвольте вам просто добавить NODE_PATH=/path перед командой. Например, изменение:

node ./foo.js

To

NODE_PATH=/usr/local/lib/node_modules ./foo.js

Если у вас несколько каталогов, используйте стандартные :-разделенные каталоги, как и для PATH:

NODE_PATH=/usr/local/lib/node_modules:/home/sarnold/node_modules ./foo.js

Чтобы сделать это постоянным, используйте встроенную оболочку export для экспорта значения переменной NODE_PATH во все дочерние файлы и поместите модификацию в файлы запуска вашей оболочки, такие как ~/.bashrc:

export NODE_PATH=/usr/local/lib/node_modules

Это будет действовать во всех новых снаряды автоматически. Вы можете source вставить этот файл в текущие оболочки, если не хотите их перезапускать:

source ~/.bashrc

Просто оставляю это здесь, так как это помогло мне с аналогичной проблемой: NPM больше не работает

У

Было несколько хороших ответов. Надеюсь, это поможет.

Comments

    Ничего не найдено.