Как настроить npm (менеджер пакетов узлов) без рут-доступа? - PullRequest
11 голосов
/ 15 сентября 2010

Настройка npm как пользователя root проста и трудна. За исключением того, что вы должны запускать команды npm от имени пользователя root (не рекомендуется). Поэтому я решил попробовать настроить его как пользователь без полномочий root.

В соответствии с документацией npm, пользователь без полномочий root без доступа root может настроить npm:

  1. создание файла .npmrc с root, binroot и manroot, указывающими на папки, которыми владеет пользователь.
  2. Затем запустите скрипт установки.

OK. Установка прошла нормально.

Но узел не может видеть пакеты, предоставленные npm.

Так как мне сделать так, чтобы узел знал о пакетах, предоставляемых npm? (Мне не нужно было ничего делать, когда я предварительно установил npm от имени пользователя root). Я могу установить require.paths внутри узла или установить переменную окружения NODE_PATH, но какую?

Спасибо.

Ответы [ 2 ]

5 голосов
/ 18 сентября 2010

После небольшого исследования кажется, что вы можете:

  1. установите в NODE_PATH корневой каталог npm или
  2. находясь в узле, вызвать require.paths.push('path_to_npm_root')
4 голосов
/ 28 сентября 2015

Это сработало для меня:

  1. Сделать папку ~/.node

    mkdir ~/.node
    
  2. Редактировать ~/.npmrc и добавить строку

    prefix = ~/.node
    
  3. Отредактируйте ~/.profile или ~/.bash_profile и добавьте эти строки

    PATH="$HOME/.node/bin:$PATH"
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
    

Теперь я могу делать такие вещи, как npm -g install http-server и он установится на ~/.node без рута.С этим на месте, когда я тогда набираю http-server, он запускается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...