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:

  1. la création d'un fichier .npmrc avec root, binroot et manroot pointant vers des dossiers que l'utilisateur possède.
  2. 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.

Était-ce utile?

La solution

Grâce à un peu d'exploration, il semble que vous pouvez soit:

  1. définir votre NODE_PATH à tout ce répertoire racine de NPM est, ou
  2. tandis que dans le noeud, invoquer require.paths.push('path_to_npm_root')

Autres conseils

Cela a fonctionné pour moi:

  1. Créez un dossier ~/.node

    mkdir ~/.node
    
  2. Modifier ~/.npmrc et ajoutez la ligne

    prefix = ~/.node
    
  3. Modifier votre ~/.profile ou ~/.bash_profile et ajouter ces lignes

    PATH="$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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top