Comment mettre en place NPM (nœud gestionnaire de paquets) sans accès root?
-
02-10-2019 - |
Question
Configuration NPM comme l'utilisateur root est straighforward et workds. Sauf que vous devez exécuter des commandes en tant que root NPM (non recommandé). Donc, je pensais que je vais essayer sa mise en place en tant qu'utilisateur non root.
D'après la documentation NPM, un utilisateur non root sans accès root peut configurer NPM par:
- la création d'un fichier
.npmrc
avecroot
,binroot
etmanroot
pointant vers des dossiers que l'utilisateur possède. - Ensuite, exécuter le script d'installation.
OK. L'installation a bien.
Mais noeud ne peut pas voir les paquets fournis par NPM.
Alors, comment puis-je faire le noeud courant des paquets fournis par NPM? (Je ne devais pas faire quoi que ce soit lorsque je l'ai déjà installé NPM en tant que root).
Je peux définir require.paths
au sein de noeud, ou définir la variable d'environnement NODE_PATH
, mais à quoi?
Merci.
La solution
Grâce à un peu d'exploration, il semble que vous pouvez soit:
- définir votre
NODE_PATH
à tout ce répertoire racine de NPM est, ou - tandis que dans le noeud, invoquer
require.paths.push('path_to_npm_root')
Autres conseils
Cela a fonctionné pour moi:
-
Créez un dossier
~/.node
mkdir ~/.node
-
Modifier
~/.npmrc
et ajoutez la ligneprefix = ~/.node
-
Modifier votre
~/.profile
ou~/.bash_profile
et ajouter ces lignesPATH="$HOME/.node/bin:$PATH" NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
Maintenant, je peux faire des choses comme npm -g install http-server
et il installera à ~/.node
sans racine. Avec cela en place, quand je puis tapez http-server
, il fonctionne.