Я бы хотел установить подобные пакеты на MacOSX, но меня также интересуют версии для Windows или Linux:
npm install express
npm install swig
npm install mongodb
npm install consolidate
npm install http-auth
Если я вызову npm без sudo, некоторые из них выйдут из строя:
Error: EACCES, open '/Users/me/.npm/cookie/0.1.2/package.tgz'
npm ERR! { [Error: EACCES, open '/Users/me/.npm/cookie/0.1.2/package.tgz']
npm ERR! errno: 3,
npm ERR! code: 'EACCES',
npm ERR! path: '/Users/me/.npm/cookie/0.1.2/package.tgz',
npm ERR! parent: 'express' }
npm ERR!
npm ERR! Please try running this command again as root/Administrator
Если я установлю с помощью sudo, файлы окажутся там, где находится мой текущий каталог, в node_modules.
Если я использую команду -g, я получаю проблему с доступом.
Если я использую -g с sudo, он устанавливается, но приложение узла не может найти пакеты:
module.js:340
throw err;
^
Error: Cannot find module 'express'
Я упустил что-то важное? Как правильно установить эти пакеты? (Мне сказали, что предпочтительнее устанавливать глобальную установку, чтобы все приложения всегда были связаны с самой последней версией пакета, поэтому, если это имеет значение, дайте мне знать)
Из npm help 5 npm-folders
страница руководства:
Локальная установка (по умолчанию):
кладет вещи в ./node_modules
корня текущего пакета.
Глобальная установка (с -g
):
кладет вещи в /usr/local
или где бы ни был установлен узел.
Установите его локально, если вы собираетесь require()
Это.
Установите его глобально, если вы собираетесь запускать его из командной строки.
Если вам нужно и то, и другое, установите его в обоих местах или используйте ссылку npm.
Единственный раз, когда я использовал sudo
была установка nw
потому что я хотел, чтобы это было связано с /usr/bin
. После вызова с sudo
Я столкнулся с подобными ошибками, потому что root
как принадлежал мой ~/.npm/_locks
каталог.
Каждые install
столкнулся с ошибкой, пока я chown
~/.npm
и ~/.npm/_locks
назад к моему пользователю.
Следуйте инструкциям на странице руководства и проверьте ~/.npm
каждый раз, когда ты sudo
.
Node.js будет перемещаться по папкам вверх, пока не найдет ваш пакет, так что вы можете установить все в своей домашней папке:
cd ~
npm install express