Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
nodejs [Le 12/09/2023, 21:55]
krodelabestiole [Nodejs]
nodejs [Le 25/03/2024, 16:46] (Version actuelle)
bcag2 [Depuis un Personal Package Archives (PPA) (dépôts officiels "nodesource")] v18->v20, 19->21
Ligne 1: Ligne 1:
 {{tag>​programmation serveur }} {{tag>​programmation serveur }}
  
-====== ​Nodejs ​======+====== ​Node.js ​======
  
-**Nodejs** est un logiciel permettant d'​exécuter du [[wpfr>​JavaScript]] côté serveur, contrairement à ce qu'on a l'​habitude de voir avec le JavaScript côté client.+**Node.js** est un logiciel permettant d'​exécuter du [[wpfr>​JavaScript]] côté serveur, contrairement à ce qu'on a l'​habitude de voir avec le JavaScript côté client.
  
-L'​avantage d'​utiliser **Nodejs** est que JavaScript permet l'​exécution de tâches asynchrones,​ ce qui peut être pratique dans certaines situations. C'est de plus en plus souvent le cas avec le « nouveau » web qui arrive (html5/​css3,​ etc.).\\ +L'​avantage d'​utiliser **Node.js** est que JavaScript permet l'​exécution de tâches asynchrones,​ ce qui peut être pratique dans certaines situations. C'est de plus en plus souvent le cas avec le « nouveau » web qui arrive (html5/​css3,​ etc.).\\ 
-De plus, **Nodejs** permet de créer des applications « serveur » facilement grâce à des applications tierces qu'il prend en charge via **[[https://​www.npmjs.com|npm]]**,​ son [[:​gestionnaire de paquets|gestionnaire de dépendances]].+De plus, **Node.js** permet de créer des applications « serveur » facilement grâce à des applications tierces qu'il prend en charge via **[[https://​www.npmjs.com|npm]]**,​ son [[:​gestionnaire de paquets|gestionnaire de dépendances]].
  
 <note important>​ <note important>​
-L'​écosystème JavaScript est un milieu en constante et rapide évolution. Attention à l'​actualité des informations que vous trouvez à ce sujet. À la rédaction de ce message, **[[https://​yarnpkg.com/​|Yarn]]** se propose de remplacer **npm**, et **[[https://​bun.sh|Bun]]** propose de remplacer à la fois **Nodejs**, **npm** et **Yarn**.+L'​écosystème JavaScript est un milieu en constante et rapide évolution. Attention à l'​actualité des informations que vous trouvez à ce sujet. À la rédaction de ce message, **[[https://​yarnpkg.com/​|Yarn]]** se propose de remplacer **npm**, et **[[https://​bun.sh|Bun]]** propose de remplacer à la fois **Node.js**, **npm** et **Yarn**.
 </​note>​ </​note>​
  
Ligne 18: Ligne 18:
     ​     ​
 ===== 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 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 :
 +  * [[: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_n|n]]
  
 ==== Depuis les dépôts officiels ==== ==== Depuis les dépôts officiels ====
 <note important>​ <note important>​
-sous Focal, cela installe la version LTS… 10.19 et sous Jammy la version 12.22.9 qui ne sont plus supportées \\ +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 \\ 
-la dernière version LTS en maintenance étant la v14 ((cf. https://​nodejs.org/​fr/​about/​releases/)) !+la dernière version LTS en maintenance étant la v18 et la version active la v20 ((cf. https://​nodejs.org/​en/about/previous-releases)) !
 </​note>​ </​note>​
-Installer **Nodejs** 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 NodeJS]].+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]].
  
 === Résumé en ligne de commande=== === Résumé en ligne de commande===
Ligne 46: Ligne 54:
 </​note>​ </​note>​
  
-Si vous souhaitez [[:​compilation|compiler]] des projets avec **Nodejs** 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 Nodejs, eux-mêmes écrits dans un autre langage (par exemple en C/C++).+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 Personal Package Archives (PPA) (dépôts officiels "​nodesource"​) ​ ==== ==== Depuis un Personal Package Archives (PPA) (dépôts officiels "​nodesource"​) ​ ====
  
-[[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 Nodejs+[[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
  
-Chaque version de nodejs ​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 ​nodejs 18.x (LTS : support jusqu'​à fin avril 2025) : ===+=== Pour installer ​Node.js 20.x (LTS : active jusqu'​en oct. 2024, support jusqu'​à fin avril 2026) : ===
  
 C'est la version recommandée pour vos applications en production. C'est la version recommandée pour vos applications en production.
  
 <​code>​ <​code>​
-wget -qO- https://​deb.nodesource.com/​setup_18.x | sudo -E bash - +curl -fsSL https://​deb.nodesource.com/​setup_20.x | sudo -E bash - &&\ 
-sudo apt install -y nodejs+sudo apt-get install -y nodejs
 </​code>​ </​code>​
-  * [[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt://​nodejs|nodejs]]**. 
  
-=== Pour installer ​nodejs 19.x et yarn : ===+=== Pour installer ​Node.js 21.x : ===
  
-FIXME la 19 n'est plus active, à remplacer par la version 20.x 
 <​code>​ <​code>​
-curl -fsSL https://​deb.nodesource.com/​setup_19.x | sudo -E bash - +curl -fsSL https://​deb.nodesource.com/​setup_21.x | sudo -E bash - &&​sudo apt-get install -y nodejs
-curl -sL https://​dl.yarnpkg.com/​debian/​pubkey.gpg | gpg --dearmor | sudo tee /​usr/​share/​keyrings/​yarnkey.gpg >/​dev/​null +
-echo "deb [signed-by=/​usr/​share/​keyrings/​yarnkey.gpg] https://​dl.yarnpkg.com/​debian stable main" | sudo tee /​etc/​apt/​sources.list.d/​yarn.list +
-sudo apt update ​&& sudo apt install -y nodejs ​yarn+
 </​code>​ </​code>​
-  * [[:​tutoriel:​comment_installer_un_paquet|Installez le paquet]] **[[apt://​nodejs|nodejs]]**. 
  
 <note important>​Pour installer des paquets supplémentaires avec npm, vous aurez peut être besoin d'​installer **[[apt>​build-essential]]**</​note>​ <note important>​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 ====
 +
 +**[[https://​github.com/​nvm-sh/​nvm|nvm]]** (//Node Version Manager//), permet de gérer et utiliser très facilement différentes versions de //npm// et //node//.
 +
 +Si besoin, installer tout d'​abord //curl// :
 +<​code>​sudo apt install curl </​code>​
 +puis **nvm**:
 +<​code>​curl -o- https://​raw.githubusercontent.com/​nvm-sh/​nvm/​v0.39.7/​install.sh | bash</​code>​
 +<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]].
 +</​note>​
 +Pour pouvoir utiliser immédiatement la commande ''​nvm''​ :
 +<​code>​
 +source ~/.bashrc
 +</​code>​
 +
 +**nvm** est installé !
 +
 +Pour lister les versions disponibles :
 +<​code>​
 +nvm ls
 +</​code>​
 +
 +Pour utiliser la version ''​v16.20.2''​ en particulier de Node.js :
 +<​code>​
 +nvm use 16
 +</​code>​
  
 ==== Au moyen du gestionnaire de versions n ==== ==== Au moyen du gestionnaire de versions n ====
  
-**n**, cf. [[https://​github.com/​tj/​n]],​ une fois installé, permet l'​installation simplifié des différentes versions de //node//.+**[[https://​github.com/​tj/​n|n]]**, une fois installé, permet l'​installation simplifié des différentes versions de //node//.
 Si besoin, installer tout d'​abord //curl// : Si besoin, installer tout d'​abord //curl// :
 <​code>​sudo apt install curl </​code>​ <​code>​sudo apt install curl </​code>​
Ligne 94: Ligne 124:
 ===== Utilisation basique ===== ===== Utilisation basique =====
  
-Voici un exemple d'​application javascript que pourrait exécuter **Nodejs**:+Voici un exemple d'​application javascript que pourrait exécuter **Node.js**:
 <file javascript app.js> <file javascript app.js>
 setTimeout(function() { setTimeout(function() {
Ligne 120: Ligne 150:
 Pour comprendre ce code vous devriez jeter un coup d'oeil à la [[https://​nodejs.org/​docs/​latest/​api/​index.html|documentation officielle]]. Pour comprendre ce code vous devriez jeter un coup d'oeil à la [[https://​nodejs.org/​docs/​latest/​api/​index.html|documentation officielle]].
  
-Bien entendu **Nodejs** n'a pas uniquement vocation à créer des petits serveurs comme celui-ci. Mais pour aller plus loin il va falloir utiliser des [[# Ajout de modules|modules]].+Bien entendu **Node.js** n'a pas uniquement vocation à créer des petits serveurs comme celui-ci. Mais pour aller plus loin il va falloir utiliser des [[# Ajout de modules|modules]].
  
 ===== Ajout de modules ===== ===== Ajout de modules =====
  
-Ajouter un module à **Nodejs** est extrêmement simple. Depuis un [[:​terminal]] tapez la ligne suivante :+Ajouter un module à **Node.js** est extrêmement simple. Depuis un [[:​terminal]] tapez la ligne suivante :
 <​code>​npm install express</​code>​ <​code>​npm install express</​code>​
 //​Express.js//​ est un module qui vous évitera de réécrire le code pour un [[wpfr>​Serveur_HTTP|serveur http]] à chaque application.\\ N'​hésitez pas à aller voir sa documentation. //​Express.js//​ est un module qui vous évitera de réécrire le code pour un [[wpfr>​Serveur_HTTP|serveur http]] à chaque application.\\ N'​hésitez pas à aller voir sa documentation.
Ligne 137: Ligne 167:
  
   * [[https://​nodejs.org|site officiel nodejs.org]] (en)   * [[https://​nodejs.org|site officiel nodejs.org]] (en)
-  * [[https://​github.com/​joyent/​node/​wiki/​Installing-Node.js-via-package-manager|Installer ​nodejs ​sous linux]] (en) +  * [[https://​github.com/​joyent/​node/​wiki/​Installing-Node.js-via-package-manager|Installer ​Node.js ​sous linux]] (en) 
-  * [[https://​nodejs.org/​docs/​latest/​api/​index.html|Documentation de nodejs]] (en)+  * [[https://​nodejs.org/​docs/​latest/​api/​index.html|Documentation de Node.js]] (en)
   * [[https://​github.com/​nodejs/​LTS#​lts-schedule|la feuille de route (roadmap) des versions stables]] (en)   * [[https://​github.com/​nodejs/​LTS#​lts-schedule|la feuille de route (roadmap) des versions stables]] (en)
   * [[https://​www.hostinger.fr/​tutoriels/​comment-installer-node-js-sur-ubuntu|Tuto installation de NPM et nodjs par nvm]] (fr)   * [[https://​www.hostinger.fr/​tutoriels/​comment-installer-node-js-sur-ubuntu|Tuto installation de NPM et nodjs par nvm]] (fr)
Ligne 144: Ligne 174:
 ---- ----
  
-//​Contributeurs : [[:​utilisateurs:​nekdev]].//​+//​Contributeurs : [[:​utilisateurs:​nekdev]], [[:​utilisateurs:​krodelabestiole]].//
  • nodejs.1694548555.txt.gz
  • Dernière modification: Le 12/09/2023, 21:55
  • par krodelabestiole