Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
nodejs [Le 21/01/2025, 10:52] nekdev [Depuis un Personal Package Archives (PPA) (dépôts officiels "nodesource")] |
nodejs [Le 25/05/2025, 13:35] (Version actuelle) nekdev [Depuis un PPA (dépôts "nodesource")] |
||
---|---|---|---|
Ligne 19: | Ligne 19: | ||
===== Installation ===== | ===== Installation ===== | ||
- | Il existe de nombreuses manières d'installer **Node.js**. Ubuntu le propose dans ses dépôts officiels et recommande évidemment cette méthode. Mais certaines applications JavaScript requièrent des versions spécifiques de Node.js et/ou de npm, et [[:APT]] ne convient pas à l'installation de versions spécifiques, autres que la version précise proposée nativement avec chaque version particulière d'Ubuntu. | + | Il existe de nombreuses manières d'installer **Node.js**. Ubuntu le propose dans ses dépôts officiels et recommande évidemment cette méthode. Mais certaines applications JavaScript requièrent des versions spécifiques de Node.js et/ou de npm, et [[:APT]] (qu'il s'agisse de [[:PPA]] ou des [[:dépôts]] officiels d'Ubuntu) ne convient pas à l'utilisation de diverses versions spécifiques. |
- | Il existe donc plusieurs autres méthodes d'installation, et en particulier des gestionnaires de paquets qui permettent l'installation voire même l'usage de plusieurs versions de Node.js simultanément : | + | Il existe donc plusieurs autres méthodes d'installation, et en particulier des gestionnaires de versions qui permettent l'installation voire même l'usage de plusieurs versions de **Node.js** simultanément : |
- | * [[:Docker]] | + | |
- | * [[https://docs.brew.sh/Homebrew-on-Linux|Homebrew]] | + | |
* [[#au_moyen_du_gestionnaire_de_versions_nvm|nvm]] (//Node Version Manager//) | * [[#au_moyen_du_gestionnaire_de_versions_nvm|nvm]] (//Node Version Manager//) | ||
* [[#au_moyen_du_gestionnaire_de_versions_n|n]] | * [[#au_moyen_du_gestionnaire_de_versions_n|n]] | ||
+ | * [[https://docs.brew.sh/Homebrew-on-Linux|Homebrew]] | ||
+ | |||
+ | Il est aussi possible de profiter de l'environnement [[:Docker]] pour installer les versions de **Node.js**, **npm** ou **Yarn** de son choix, en les isolant du système. Dans ce cadre on préfère généralement déployer plus directement et simplement les images des applications qui reposent sur **Node.js** elles-mêmes. | ||
==== Depuis les dépôts officiels ==== | ==== Depuis les dépôts officiels ==== | ||
<note important> | <note important> | ||
- | sous [[:focal|Focal]], cela installe la version LTS… 10.19 et sous [[:jammy|Jammy]] la version 12.22.9 qui ne sont plus supportées \\ | + | Cette méthode n'est recommandée que si vous utilisez **Node.js** pour une application en particulier, compatible avec une version de **Node.js** parfois ancienne. Les versions d'Ubuntu étant maintenues plus longtemps que certaines versions de **Node.js**, il arrive régulièrement que la version proposée dans les dépôts officielles soit déjà abandonnée. |
- | la dernière version LTS en maintenance étant la v18 et la version active la v20 ((cf. https://nodejs.org/en/about/previous-releases)) ! | + | |
+ | Si vous avez couramment besoin de **Node.js** ou souhaitez utiliser une version récente, utilisez de préférence un gestionnaire de version, tel que **[[#au_moyen_du_gestionnaire_de_versions_n|n]]** ou **[[#au_moyen_du_gestionnaire_de_versions_nvm|nvm]]**. | ||
</note> | </note> | ||
- | Installer **Node.js** sous ubuntu est simple, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt>nodejs,npm|nodejs npm]]**. Vous préfèrerez probablement installer [[#depuis_un_personal_package_archives_ppa_depots_officiels_nodesource|la version que met à disposition l'équipe de Node.js]]. | + | |
+ | Installer **Node.js** sous ubuntu est simple, il suffit d'[[:tutoriel:comment_installer_un_paquet|installer les paquets]] **[[apt>nodejs,npm|nodejs npm]]**. En revanche la version installée de cette manière peut être ancienne et même déjà abandonnée (voir ci-dessus). | ||
=== Résumé en ligne de commande=== | === Résumé en ligne de commande=== | ||
Ligne 43: | Ligne 46: | ||
</code> | </code> | ||
- | <note important>Il m'a fallu ajouter deux liens symboliques : | + | Si vous souhaitez [[:compilation|compiler]] des projets avec **Node.js** il vous faudra [[:tutoriel:comment_installer_un_paquet|installer]] **[[apt>nodejs-dev]]**. Notez que vous n'avez pas besoin de ce paquet pour développer des projets en [[wpfr>JavaScript]], il est utile en revanche si vous comptez développer des modules pour **Node.js**, eux-mêmes écrits dans un autre langage (par exemple en C/C++). |
- | <code> | + | |
- | sudo ln -s /usr/bin/nodejs /usr/local/bin/node | + | |
- | sudo ln -s /usr/bin/npm /usr/local/bin/npm | + | |
- | </code> | + | |
- | </note> | + | |
- | <note important>Ou alors installer le paquet **[[apt>nodejs-legacy|nodejs-legacy]]** qui installera les liens nécessaires à la compatibilité des conventions de nommage | + | |
- | <code> | + | |
- | sudo apt install nodejs-legacy | + | |
- | </code> | + | |
- | </note> | + | |
- | Si vous souhaitez [[:compilation|compiler]] des projets avec **Node.js** il vous faudra [[:tutoriel:comment_installer_un_paquet|installer]] **[[apt>nodejs-dev]]**. Notez que vous n'avez pas besoin de ce paquet pour développer des projets en Javascript, il est utile en revanche si vous comptez développer des modules pour Node.js, eux-mêmes écrits dans un autre langage (par exemple en C/C++). | + | ==== Depuis un PPA (dépôts "nodesource") ==== |
- | ==== Depuis un Personal Package Archives (PPA) (dépôts officiels "nodesource") ==== | + | <note important>Cette méthode n'offre pas la souplesse ni la facilité d'utilisation d'un gestionnaire de version dédié, tel que **[[#au_moyen_du_gestionnaire_de_versions_n|n]]** ou **[[#au_moyen_du_gestionnaire_de_versions_nvm|nvm]]**. En outre elle peut complexifier et rendre imprévisibles les mises à jour majeures du système. |
+ | </note> | ||
- | [[https://chrislea.com/2014/07/09/joining-forces-nodesource/|Chris Lea]] et [[https://nodesource.com/blog/chris-lea-joins-forces-with-nodesource|NodeSource]] se sont associés pour maintenir un nouveau PPA avec des versions stables plus récentes de Node.js | + | [[https://chrislea.com/2014/07/09/joining-forces-nodesource/|Chris Lea]] et [[https://nodesource.com/blog/chris-lea-joins-forces-with-nodesource|NodeSource]] se sont associés pour maintenir un [[:PPA]] avec des versions stables de **Node.js**, souvent plus récentes que celles des dépôts officiels. |
- | Chaque version de Node.js possède un script d'installation qui ajoute le dépôt correspondant au gestionnaire de paquet. | + | Chaque version de **Node.js** possède un script d'installation qui ajoute le dépôt correspondant au gestionnaire de paquet. |
On les trouve ici : https://github.com/nodesource/distributions | On les trouve ici : https://github.com/nodesource/distributions | ||
=== Pour installer Node.js 22.x (LTS : active jusqu'en oct. 2025, support jusqu'à fin avril 2027) : === | === Pour installer Node.js 22.x (LTS : active jusqu'en oct. 2025, support jusqu'à fin avril 2027) : === | ||
- | C'est la version recommandée pour vos applications en production. | + | C'est la dernière version stable recommandée pour vos applications en production. |
<code> | <code> | ||
- | curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - &&\ | + | curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash - && \ |
sudo apt-get install -y nodejs | sudo apt-get install -y nodejs | ||
</code> | </code> | ||
- | === Pour installer Node.js 23.x : === | + | === Pour installer Node.js 24.x : === |
<code> | <code> | ||
- | curl -fsSL https://deb.nodesource.com/setup_23.x | sudo -E bash - &&sudo apt-get install -y nodejs | + | curl -fsSL https://deb.nodesource.com/setup_24.x | sudo -E bash - && sudo apt-get install -y nodejs |
</code> | </code> | ||
- | <note important>Pour installer des paquets supplémentaires avec npm, vous aurez peut être besoin d'installer **[[apt>build-essential]]**</note> | + | <note tip>Pour installer des paquets supplémentaires avec npm, vous aurez peut-être besoin d'installer **[[apt>build-essential]]**</note> |
==== Au moyen du gestionnaire de versions nvm ==== | ==== Au moyen du gestionnaire de versions nvm ==== | ||
Ligne 92: | Ligne 86: | ||
<code>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash</code> | <code>curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash</code> | ||
<note important> | <note important> | ||
- | Ce numéro de version est amené à changer, vérifier la commande exacte sur [[https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script|cette page]]. | + | Ce numéro de version est amené à changer, vérifier la commande exacte sur [[https://github.com/nvm-sh/nvm?tab=readme-ov-file#install--update-script|le dépôt nvm]] ou [[https://nodejs.org/fr/download|la page download de la doc officielle de node]]. |
</note> | </note> | ||
Pour pouvoir utiliser immédiatement la commande ''nvm'' : | Pour pouvoir utiliser immédiatement la commande ''nvm'' : | ||
Ligne 127: | Ligne 121: | ||
===== Utilisation basique ===== | ===== Utilisation basique ===== | ||
- | Voici un exemple d'application javascript que pourrait exécuter **Node.js**: | + | Voici un exemple d'application JavaScript que pourrait exécuter **Node.js**: |
<file javascript app.js> | <file javascript app.js> | ||
setTimeout(function() { | setTimeout(function() { |