web-dev-qa-db-fra.com

Installer Node.js pour installer n Pour installer Node.js?

J'ai du mal à comprendre l'utilisation de n . En gros, il est clair qu’il s’agit d’un gestionnaire de versions pour Node.js tel que nvm .

Mais contrairement à nvm, qui est essentiellement un script Shell, il est recommandé, selon la documentation, d’utiliser npm pour installer n:

$ npm install -g n

Ce que je ne comprends pas, c'est: Pour avoir npm sous la main, vous devez installer Node.js. Pourquoi devrais-je installer Node.js manuellement pour utiliser npm afin de pouvoir ensuite installer Node.js avec n?

Pour poser ma question en d'autres termes: pourquoi n suggère-t-il d'installer à l'aide de npm si son objectif principal est d'installer Node.js, qui inclut npm?

38
Golo Roden

tl; dr

# Installs n and the latest LTS Node.js version to ~/n.
# For bash, ksh, zsh, modifies the respective user-specific Shell-initialization file to
# define env. variable N_PREFIX and append $N_PREFIX/bin to the $PATH.
curl -L https://git.io/n-install | bash  

Je ressens ta douleur. Installer Node.js pour installer ensuite n pour ensuite gérer les installations de Node.js est en effet une configuration étrange.

Ce serait vraiment bien de pouvoir installer n seul.

J'ai créé un projet pour supporter l'installation de n directement à partir de GitHub; le seul prérequis au-delà de ce dont n a besoin est git.

Notez que vous devez d'abord supprimer toute version nNode.js préexistante.
Le répertoire cible, ~/n par défaut, ne doit pas encore exister ou doit être vide.
Pour bash, ksh et zsh, le fichier d’initialisation du shell approprié (par exemple, ~/.bashrc) est automatiquement modifié pour définir la variable d’environnement N_PREFIX et ajouter $N_PREFIX/bin au $PATH; pour les autres coquilles, cela doit être fait manuellement.

En plus d'installer n directement à partir de GitHub, il installe également des scripts d'assistance pour mettre à jour n (n-update) et le désinstaller (n-uninstall).

Voici _/exemples de travail; voir le repo n-install GitHub pour plus de détails:

  • Installation avec confirmation Invitez à confirmer l'installation à l'emplacement par défaut $HOME/n et l'installation de la dernière version de LTS Node.js:

    curl -L https://git.io/n-install | bash
    
  • Installation automatisée à l'emplacement par défaut, avec installation ultérieure des dernières versions de LTS (support à long terme) et de Node.js globales, ainsi que de la dernière version de 4.1.x Node.js:

    curl -L https://git.io/n-install | bash -s -- -y lts latest 4.1
    
  • Installation automatisée à l'emplacement par défaut, sans installation ultérieure d'une version de Node.js:

    curl -L https://git.io/n-install | bash -s -- -y -
    
  • Installation automatisée dans l'emplacement personnalisé ~/util/n, avec installation ultérieure de la dernière version de LTS Node.js:

    curl -L https://git.io/n-install | N_PREFIX=~/util/n bash -s -- -y
    
35
mklement0

Si vous préférez, vous pouvez installer n à partir du source:

mkdir ~/tmp
cd ~/tmp
git clone https://github.com/tj/n
cd n
make install

Ensuite, vous pouvez installer la dernière version stable du noeud comme suit:

n stable
20
user456584

Le module n a été créé pour commodity .

Par exemple, si vous souhaitez mettre à jour votre version de Node.js de la version 0.8.0 à la version 10.20, préférez-vous télécharger un package, l'extraire et le compiler? Ou préférez-vous taper n 0.10.20 et le faire installer instantanément tout en conservant les versions précédentes de Node pour un basculement aisé?

n suggère d'utiliser npm pour l'installer car n est un module. En d’autres termes, npm est le moyen le plus simple de l’installer. Les modules de nœuds ont la fonctionnalité de pouvoir s'exécuter dans un shell lorsqu'ils sont installés globalement. Cette fonction a donc été utilisée pour faciliter le changement de version des nœuds.

11
hexacyanide

Vous pouvez également installer npm séparément de Node.JS; Exemple: sur un système sans Node.JS:

git clone https://github.com/npm/npm
cd npm
./configure
make

Référence: Projet NPM GitHub

1
A T

J'ai eu la même question, mais j'ai vu la lumière. 'n' est un outil pratique qui simplifie le test de différentes versions de noeud. Fonctionne très bien sous Linux, mais peu importe la façon dont je l’installe sur OS X (clone git, puis installation de npm ou utilisation de la méthode recommandée de user456584 ), lorsqu’il est exécuté, les mêmes résultats sont " Erreur: pas de version installée ", même s'il est installé dans 

/ usr/local/lib/node_modules/n

et 

/ usr/local/bin/n

Frustrant parce que j'ai trouvé cet outil tellement pratique sous Linux.

0
Crooner

Si vous avez inclus votre bin bin par défaut dans la variable $ PATH comme ceci

export PATH=/usr/local/Cellar/node/11.5.0/bin:$PATH

alors n ne pourra pas activer d'autres versions de noeud. Supprimez cette exportation du chemin et vous pourrez ensuite gérer la version du nœud actif par n. 

0
r.bhardwaj