Installer Node.js sur le sous-système Windows pour Linux (WSL2)

Si vous utilisez Node.js dans un cadre professionnel, attachez de l’importance à la vitesse des performances et à la compatibilité des appels système, souhaitez exécuter des conteneurs Docker qui tirent parti des espaces de travail Linux et évitent d’avoir à gérer à la fois des scripts de compilation Linux et Windows ou simplement préférez utiliser une ligne de commande Bash, vous pouvez installer Node.js sur le Sous-système Windows pour Linux (plus précisément, WSL 2).

L’utilisation du Sous-système Windows pour Linux (WSL) vous permet d’installer la distribution Linux de votre choix (Ubuntu est notre choix par défaut) et d’assurer ainsi la cohérence entre votre environnement de développement (où vous écrivez du code) et l’environnement de production (le serveur sur lequel votre code est déployé).

Note

Si vous débutez dans le développement avec Node.js et souhaitez être rapidement opérationnel afin d’apprendre, installez Node.js sur Windows. Cette recommandation s’applique également si vous envisagez d’utiliser un environnement de production Windows Server.

Installer WSL 2

WSL 2 est la version la plus récente disponible pour Windows et est recommandée pour les workflows de développement Node.js professionnels. Pour activer et installer WSL 2, suivez les étapes fournies dans la documentation sur l’installation de WSL. Ces étapes permettent de choisir une distribution Linux (par exemple, Ubuntu).

Une fois que vous avez installé WSL 2 et une distribution Linux, ouvrez la distribution Linux (celle-ci est accessible à partir du menu Démarrer de Windows), puis vérifiez sa version et son nom de code à l’aide de la commande : lsb_release -dc.

Nous vous recommandons de mettre régulièrement à jour votre distribution Linux, notamment juste après son installation, pour être sûr que vous disposez des packages les plus récents. Windows ne gère pas automatiquement cette mise à jour. Pour mettre à jour votre distribution, utilisez la commande suivante : sudo apt update && sudo apt upgrade.

Installer le Terminal Windows (facultatif)

Terminal Windows est un interpréteur de ligne de commande amélioré qui vous permet d’exécuter plusieurs onglets afin de pouvoir basculer rapidement entre les lignes de commande Linux, l’invite de commandes Windows, PowerShell, Azure CLI ou ce que vous préférez utiliser. Vous pouvez également créer des combinaisons de touches personnalisées (touches de raccourci pour ouvrir ou fermer les onglets, les opérations copier+coller, etc.), utiliser la fonctionnalité de recherche, personnaliser votre terminal avec des thèmes (modèles de couleurs, styles et tailles de police, image d’arrière-plan/flou/transparence), et bien plus encore. Découvrez-en plus dans la documentation de Terminal Windows.

Installer Terminal Windows en utilisant le Microsoft Store : en installant via le Store, les mises à jour sont gérées automatiquement.

Installer nvm, node.js et npm

En plus de choisir s’il faut procéder à l’installation sur Windows ou WSL, il faut prendre d’autres décisions lors de l’installation de Node.js. Nous vous recommandons d'utiliser un gestionnaire de versions car les versions changent très rapidement. Vous devrez probablement passer d’une version à une autre de Node.js en fonction des besoins des différents projets sur lesquels vous travaillez. Node Version Manager, également appelé nvm, est la méthode la plus couramment utilisée pour installer plusieurs versions de Node.js. Nous allons donc suivre les étapes d’installation de nvm et l’utiliser pour installer Node.js et Node Package Manager (npm). D’autres gestionnaires de versions sont également à prendre en compte. Ceux-ci sont couverts à la section suivante.

Important

Veillez à supprimer toutes les installations existantes de Node.js ou de npm de votre système d'exploitation avant d'installer un gestionnaire de versions car les différents types d'installation peuvent entraîner des conflits. Par exemple, la version de Node qui peut être installée avec la commande apt-get d’Ubuntu est actuellement obsolète. Pour obtenir de l’aide sur la suppression d’installations précédentes, consultez Comment supprimer Node.js d’Ubuntu.

  1. Ouvrez votre ligne de commande Ubuntu (ou la distribution de votre choix).

  2. Installez cURL (outil utilisé pour télécharger du contenu à partir d’Internet dans la ligne de commande) avec la commande sudo apt-get install curl

  3. Installez nvm avec la commande curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/master/install.sh | bash

    Note

    L’installation d’une version plus récente de NVM à l’aide de cURL a pour effet de remplacer la plus ancienne, en laissant intacte la version de Node que vous avez utilisée pour installer NVM. Pour en savoir plus, consultez la page du projet GitHub afin d’obtenir les informations de publication les plus récentes sur NVM.

  4. Pour vérifier l’installation, entrez la commande command -v nvm... qui devrait retourner « nvm ». Si vous recevez le message « commande introuvable » ou aucune réponse, fermez votre terminal, rouvrez-le, puis réessayez. Pour en savoir plus, consultez le dépôt GitHub nvm.

  5. Répertoriez les versions de Node actuellement installées (il ne doit y en avoir aucune à ce stade) : nvm ls

    NVM list showing no Node versions

  6. Installez les versions LTS actuelles et stables de Node.js. Dans une étape ultérieure, vous apprendrez à basculer entre les versions actives de Node.js avec une commande nvm.

    • Installer la version LTS stable actuelle de Node.js (recommandée pour les applications de production) : nvm install --lts
    • Installez la version actuelle de Node.js (pour tester les dernières fonctionnalités de Node.js et les améliorations apportées, mais avec plus de problèmes potentiels) : nvm install node
  7. Répertoriez les versions de Node installées : nvm ls... Les deux versions que vous venez d'installer doivent maintenant être répertoriées.

    NVM list showing LTS and Current Node versions

  8. Vérifiez que Node.js est installé et que la version par défaut actuelle est la suivante : node --version. Ensuite, vérifiez que vous avez également npm, avec : npm --version (vous pouvez également utiliser which node ou which npm pour voir le chemin d’accès utilisé pour les versions par défaut).

  9. Pour changer la version de Node.js à utiliser pour un projet, créez un répertoire de projet mkdir NodeTest, accédez au répertoire cd NodeTest, puis entrez nvm use node pour basculer vers la version actuelle ou nvm use --lts pour basculer vers la version LTS. Vous pouvez également utiliser le numéro spécifique de toute version supplémentaire que vous avez installée, comme nvm use v8.2.1 (pour répertorier toutes les versions de Node.js disponibles, utilisez la commande nvm ls-remote).

Si vous utilisez NVM pour installer Node.js et NPM, vous n’avez pas besoin d’utiliser la commande SUDO pour installer de nouveaux packages.

Autres gestionnaires de versions

Si nvm est actuellement le gestionnaire de versions le plus couramment utilisé pour Node, il en existe d’autres :

  • n est une alternative classique de nvm, qui remplit la même fonction avec des commandes légèrement différentes, et qui est installée via npm au lieu d’un script bash.
  • fnm est un gestionnaire de versions plus récent, supposé être beaucoup plus rapide que nvm (il utilise également Azure Pipelines).
  • Volta est un nouveau gestionnaire de versions de l’équipe LinkedIn, présenté comme plus rapide et offrant une prise en charge multiplateforme.
  • asdf-VM est une interface de ligne de commande unique tout en un pour plusieurs langages tels que gvm, nvm, rbenv et pyenv (entre autres).
  • nvs (Node Version Switcher) est une alternative multiplateforme à nvm, offrant la possibilité d’intégration avec VS Code.

Installer Visual Studio Code

Nous vous recommandons d’utiliser Visual Studio Code avec le pack d’extension Remote Development pour les projets Node.js. Cela a pour effet de diviser VS Code en une architecture « client-serveur », avec le client (l’interface utilisateur VS Code) s’exécutant sur votre système d’exploitation Windows, et le serveur (votre code, Git, plug-in, etc.) s’exécutant « à distance » sur votre distribution Linux WSL.

Note

Ce scénario « distant » est un peu différent de ce à quoi vous pouvez être habitué. WSL prend en charge une distribution Linux réelle dans laquelle le code de votre projet est exécuté, indépendamment de votre système d’exploitation Windows, mais toujours sur votre ordinateur local. L’extension Remote-WSL se connecte à votre sous-système Linux comme s’il s’agissait d’un serveur distant, même s’il n’est pas en cours d’exécution dans le cloud. Il est toujours en cours d’exécution sur votre ordinateur local dans l’environnement WSL que vous avez activé pour s’exécuter avec Windows.

D’autres éditeurs de code, comme IntelliJ, Sublime Text ou Brackets, fonctionnent également avec un environnement de développement Node.js WSL 2, mais ils n’ont peut-être pas le même type de fonctionnalités distantes que VS Code. Ces éditeurs de code peuvent rencontrer des problèmes lors de l’accès à l’emplacement réseau partagé WSL (\wsl$\Ubuntu\home) et tenter de générer vos fichiers Linux à l’aide d’outils Windows, ce que vous ne souhaitez probablement pas. L’extension Remote-WSL dans VS Code gère cette compatibilité pour vous ; avec d’autres IDE, vous devriez peut-être configurer un serveur X. La prise en charge de l’exécution d’applications GUI dans WSL (tel qu’un IDE d’éditeur de code) sera bientôt disponible.

Les éditeurs de texte basés sur un terminal (VIM, Emacs, nano) sont également utiles pour apporter des modifications rapides directement sur la console L’article Emacs, Nano, or Vim: Choose your Terminal-Based Text Editor Wisely explique judicieusement quelques différences et aborde succinctement la façon d’utiliser chacun d’entre eux.

Pour installer VS Code et l’extension Remote-WSL :

  1. Téléchargez et installez VS Code pour Windows. VS Code est également disponible pour Linux, mais le sous-système Windows pour Linux ne prend pas en charge les applications GUI. Nous devons donc l’installer sur Windows. Ne vous inquiétez pas, vous serez toujours en mesure de l’intégrer dans vos outils et dans la ligne de commande Linux à l’aide de l’extension WSL-Remote.

  2. Installez l’extension WSL-Remote sur VS Code. Cela vous permet d’utiliser WSL comme environnement de développement intégré et de gérer la compatibilité et les chemins d’accès pour vous. En savoir plus

Important

Si vous avez déjà installé VS Code, vous devez vous assurer que vous disposez de la version 1.35 de mai ou plus pour installer l’extension WSL-Remote. Nous vous déconseillons d’utiliser WSL dans VS Code sans l’extension WSL-Remote, car vous perdrez la prise en charge de la saisie semi-automatique, du débogage, de la vérification (linting), etc. Le saviez-vous ? Cette extension WSL est installée dans le répertoire $HOME/.vscode-server/extensions.

Extensions VS Code utiles

Si VS Code intègre de nombreuses fonctionnalités pour le développement en Node.js, il existe des extensions utiles disponibles dans le Pack d’extension Node.js dont vous pouvez envisager l’installation. Installez-les toutes ou choisissez celles qui vous semblent les plus utiles.

Pour installer le pack d'extension Node.js :

  1. Ouvrez la fenêtre Extensions (Ctrl + Maj + X) dans VS Code.

    La fenêtre Extensions est divisée en trois sections (parce que vous avez installé l’extension Remote-WSL).

    • « Local – Installé » : extensions installées pour une utilisation avec votre système d’exploitation Windows.
    • « WSL:Ubuntu-18.04-Installé » : extensions installées pour une utilisation avec votre système d’exploitation Ubuntu (WSL).
    • « Recommandé » : extensions recommandées par VS Code en fonction des types de fichiers dans votre projet actuel.

    VS Code Extensions Local vs Remote

  2. Dans la zone de recherche du haut de la fenêtre Extensions, entrez : Pack d’extension Node (ou le nom d’une extension que vous recherchez). L’extension sera installée pour vos instances locales ou WSL de VS Code, selon l’emplacement où vous avez ouvert le projet actuel. Vous pouvez le déterminer en sélectionnant le lien distant dans l’angle inférieur gauche de la fenêtre de VS Code (en vert). Elle vous donne la possibilité d’ouvrir ou de fermer une connexion à distance. Installez vos extensions Node.js dans l’environnement « WSL:Ubuntu-18.04 ».

    VS Code remote link

D’autres extensions sont disponibles :

  • Débogueur JavaScript : lorsque vous aurez terminé le développement côté serveur avec Node.js, vous devrez développer et tester le côté client. Cette extension est un débogueur JavaScript basé sur DAP. Il débogue Node.js, Chrome, Edge, WebView2, les extensions VS Code, etc.
  • Cartes clés d’autres éditeurs : ces extensions peuvent être utiles si vous utilisiez auparavant un autre éditeur de texte (comme Atom, Sublime, Vim, eMacs, Notepad++, etc.).
  • Synchronisation des paramètres : vous permet de synchroniser vos paramètres VS Code sur différentes installations à l’aide de GitHub. Si vous travaillez sur plusieurs ordinateurs, cela permet de garantir la cohérence de votre environnement.

Configurer Git (facultatif)

Pour configurer Git pour un projet Node.js sur WSL, consultez l’article Bien démarrer avec l’utilisation de Git sur le sous-système Windows pour Linux dans la documentation WSL.