Je souhaite utiliser les packages de distribution Node.js (ou le chris-lea ppa pour les versions plus récentes) mais installer NPM dans mon répertoire personnel.
Cela peut sembler difficile, mais c'est un moyen assez idiomatique pour les développeurs utilisant des polyglottes / github de configurer des environnements d'exécution / bibliothèque de langage sous Linux: packages de distribution pour l'exécution, bibliothèques tierces dans un environnement par utilisateur (voir virtualenv, RVM - RVM construira également Ruby pour vous si vous le souhaitez). Si nécessaire, je construirai un nœud localement, mais c'est un PITA car Node devient une exigence de développement accessoire pour de nombreux projets.
Réponses:
NPM installera déjà des packages locaux dans vos projets, mais j'aime toujours garder le système à l'écart des fichiers de mon système d'exploitation. Voici comment je suggère de compartimenter les packages Nodejs:
Installez Nodejs et NPM via le PPA chris-lea. Ensuite, j'ai configuré une racine de package dans mon homedir pour contenir les packages "globaux" de Node:
Configurez NPM pour qu'il utilise ce répertoire pour ses installations globales de package:
Configurez votre PATH et MANPATH pour voir les commandes dans votre préfixe $ NPM_PACKAGES en ajoutant ce qui suit à votre .zshrc / .bashrc:
Désormais, lorsque vous effectuez une opération
npm install -g
, NPM installera les bibliothèques~/.npm-packages/lib/node_modules
et liera les outils exécutables dans~/.npm-packages/bin
, qui se trouve dans votre fichierPATH
.Utilisez simplement
npm install -g
comme vous le feriez normalement:la source
node
est installé maisnpm
n'est pas, suivez la configuration dans la réponse ci - dessus etnpm_config_prefix=$NPM_PACKAGES curl -L https://npmjs.org/install.sh | sh
pour obtenirnpm
lui - même installé dans votre répertoire personnel.npm config set prefix $NPM_PACKAGES
$HOME/.local
place pour le préfixe. C'est un dossier couramment utilisé de nos jours par d'autres logiciels pour stocker des fichiers locaux.echo 'prefix = ${NPM_PACKAGES}' >> ~/.npmrc
, le chemin est pas codé en dur dans.npmrc
, mais NPM lira de la variable d'environnement chaque fois exécute NPM (note que je changé"
à'
afin d'éviter la coquille qui exécute l'écho de l' élargissement de la variable, et j'ajouté{}
autour de la variable , puisque c'est la syntaxe utilisée dans.npmrc
. Pour que cela fonctionne, j'ai dû changer.bashrc
pour lireexport NPM_PACKAGES="$HOME/.npm-packages"
:. Ajouter le leexport
rend disponible à npm. Sans rapport, je pense que vous devrez également ajouterexport
aux autres variables.La réponse de Jake a été publiée en 2012 et, bien qu'utile, elle fait référence aux PPA Node.js de Chris Lea qui ne sont plus mis à jour depuis mars 2015.
Voici les étapes que j'utilise pour installer Node.js et npm dans mon répertoire personnel:
Installez Node.js avec nvm (non
sudo
requis):Maintenant tu peux
install -g
sanssudo
et tout entre~/.nvm/
Ou installez Node.js sans nvm ( instructions officielles ):
Installez Node.js
Node.js v6 (LTS actuel en mai 2017):
Node.js v7:
Remplacez le répertoire par défaut de npm par un répertoire local:
Vous pouvez également le remplacer
.npm-global
par le répertoire de votre choix.Mettez à jour npm et vérifiez qu'il est installé dans votre
$HOME
répertoire:Maintenant, vous pouvez
install -g
sanssudo
et sans déranger vos fichiers système.la source
La solution publiée par Just Jake est géniale. Cependant, en raison d'un bogue avec npm> 1.4.10, cela peut ne pas fonctionner comme prévu. (Voir ceci et cela )
Pendant que le bogue est résolu, vous pouvez revenir à npm 1.4.10 en suivant ces étapes:
sudo npm install -g [email protected]
npm --version
)la source
Parce que python fait déjà un excellent travail
virtualenv
, j'utilisenodeenv
. Par rapport ànvm
, vous pouvez créer plusieurs environnements pour la même version de nœud (par exemple, deux environnements pour nœud0.10
mais avec différents ensembles de packages).Le readme est plutôt bon: https://github.com/ekalinin/nodeenv
la source
J'ai utilisé la solution @ just-jake pendant un certain temps et j'ai trouvé que nvm est plus facile à configurer. C'est aussi une solution très puissante qui permet d'installer et d'utiliser différentes versions de
nodejs
.Sur Ubuntu 14.04 ou 16.04:
Installez les packages prérequis pour la construction
nodejs
:Installez NVM :
Dans le cas où une version plus récente de nvm serait disponible, vous pouvez trouver la commande d'installation réelle sur le site nvm .
nvm
l'installateur ajoutera un script d'amorçage à~/.bashrc
, vous devez donc rouvrir le terminal pour l'exécuter, ou faire:Vous pouvez maintenant installer n'importe quel
nodejs
version de votre choix, basculer entre elles, etc.Utiliser
nvm ls-remote
pour lister les disponiblesnodejs
versions .Pour installer, par exemple, la
nodejs
v4.2.4:la source
Pour développer la réponse fournie par Just Jake et user1533401: Je ne parviens pas à rétrograder car j'utilise l'hébergement partagé et le nœud est installé dans un répertoire système. C'est aussi pourquoi j'ai changé le répertoire où npm installe les scripts globaux si je veux qu'il le fasse. Pour ceux qui sont dans le même bateau, voici une autre solution temporaire que j'ai trouvée:
npm install -g --prefix=$(npm config get prefix) <package>
Le bogue est que npm ne lit pas votre fichier de configuration par utilisateur, mais le spécifier à chaque fois que vous installez un script global corrige cela. Trouvé ici .
la source
Comme indiqué déjà ici et ici
la source
D'autres réponses ont des solutions obsolètes: la solution de 2020 utilise
NPM_CONFIG_PREFIX
une variable d'environnement. (Voir détails )Par exemple,
la source