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 01/03/2012, 03:43]
pseudodevingcinqcaractere
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 ​javascript ​serveur ​BROUILLON}} +{{tag>​programmation serveur }} 
----- + 
-====== ​Nodejs ​====== +====== ​Node.js ​====== 
-Nodejs ​est un logiciel permettant d'​exécuter du 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 **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, **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]].
  
-L'avantage d'​utiliser nodejs est que javascript ​est un langage asynchrone, ce qui peut être pratique dans certaines situationsC'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 un logiciel similaire à un gestionnaire ​de paquets.+<note important>​ 
 +L'écosystème JavaScript ​est un milieu en constante et rapide évolutionAttention à 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>​
  
 ===== Pré-requis ===== ===== Pré-requis =====
Ligne 10: Ligne 16:
   * Disposer des [[:​sudo|droits d'​administration]].   * Disposer des [[:​sudo|droits d'​administration]].
   * Disposer d'une connexion à Internet configurée et activée.   * Disposer d'une connexion à Internet configurée et activée.
-  ​ +    ​ 
-  ===== Installer Nodejs sous Ubuntu ​===== +===== Installation ​=====
-L'​installer sous ubuntu est simple, voici la marche à suivre : +
-  sudo apt-get install python-software-properties +
-  sudo add-apt-repository ppa:​chris-lea/​node.js +
-  sudo apt-get update +
-  sudo apt-get install nodejs npm +
-Si vous souhaitez compiler des projets avec nodejs il vous faudra installer **[[apt>​nodejs-dev]]**+
  
-Une fois installé ​vous pourrez ​l'utiliser sans aucun souci.+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 ==== 
 +<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 \\ 
 +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>​ 
 +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=== 
 + 
 +Le résumé, à saisir dans un [[:​terminal]],​ utilise ici la [[:​commande_shell|commande]] **[[:​apt-cli|apt]]** : 
 +<​code>​ 
 +sudo apt update 
 +sudo apt install nodejs npm 
 +</​code>​ 
 + 
 +<note important>​Il m'a fallu ajouter deux liens symboliques : 
 +<​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 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 Node.js 
 + 
 +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 
 + 
 +=== 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. 
 + 
 +<​code>​ 
 +curl -fsSL https://​deb.nodesource.com/​setup_20.x | sudo -E bash - &&​\ 
 +sudo apt-get install -y nodejs 
 +</​code>​ 
 + 
 +=== Pour installer Node.js 21.x : === 
 + 
 +<​code>​ 
 +curl -fsSL https://​deb.nodesource.com/​setup_21.x | sudo -E bash - &&​sudo apt-get install -y nodejs 
 +</​code>​ 
 + 
 +<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 ==== 
 + 
 +**[[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// : 
 +<​code>​sudo apt install curl </​code>​ 
 +puis **n**: 
 +<​code>​sudo curl -o /​usr/​local/​bin/​n https://​raw.githubusercontent.com/​visionmedia/​n/​master/​bin/​n</​code>​ 
 +Puis affecter les droits à n: 
 +<​code>​sudo chmod +x /​usr/​local/​bin/​n</​code>​ 
 +et enfin, installer //node// 
 +<​code>​ 
 +sudo n stable 
 +</​code>​
  
 ===== 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() {
-console.log(Coucou); // écrit un message dans la console au bout de deux secondes+console.log('Coucou'); // écrit un message dans la console au bout de deux secondes
 }, 2000); }, 2000);
-console.log(toi); // écrit un message dans la console+console.log('toi'); // écrit un message dans la console
 </​file>​ </​file>​
-Pour exécuter cette application il vous suffit ​d'​ouvrir une console et de taper +Pour exécuter cette applicationil vous suffit de saisir dans un [[:​terminal]] la [[:​commande_shell|commande]] suivante
-  node app.js +<​code>​node app.js</​code>​ 
- +Sur Ubuntu 13.04 la commande ​de lancement est : 
-Bien entendu une telle application n'a aucun intérêt, c'est juste pour vous montrer ​de façon rapide comment cela fonctionne.+<​code>​nodejs app.js</​code>​
  
 +Bien entendu une telle application n'a aucun intérêt, c'est juste pour vous montrer de façon rapide comment cela fonctionne.\\
 L'​idée serait plutôt de créer une application serveur dont voici un exemple : L'​idée serait plutôt de créer une application serveur dont voici un exemple :
 <file javascript app.js> <file javascript app.js>
-var http = require(http);+var http = require('http')
 +var port = 8080;
 http.createServer(function (req, res) { http.createServer(function (req, res) {
-res.writeHead(200,​ {Content-Typetext/html}); +res.writeHead(200,​ {'Content-Type''text/html'}); 
-res.write(Salut tout le monde !);+res.write('Salut tout le monde !');
 res.end(); res.end();
-}).listen(8080); +}).listen(port); 
-console.log(Serveur tourne sur http://​localhost:​8080/’);+console.log("Serveur tourne sur http://​localhost:​"+port);
 </​file>​ </​file>​
-Pour comprendre ce code vous devriez jeter un coup d'oeil à la [[http://​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 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. ​Ouvrez une console et tapez la ligne suivante : + 
-  npm install express +Ajouter un module à **Node.js** ​est extrêmement simple. ​Depuis un [[:​terminal]] ​tapez la ligne suivante : 
-Express.js est un module qui vous évitera de réécrire le code pour un serveur http à chaque application. N'​hésitez pas à aller voir sa documentation.+<​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.
  
 De la même façon vous pourrez installer beaucoup d'​autres modules, à vous de les trouver. De la même façon vous pourrez installer beaucoup d'​autres modules, à vous de les trouver.
Ligne 60: Ligne 165:
  
 ===== Voir aussi ===== ===== Voir aussi =====
-  ​Installer nodejs sous linux: [[https://​github.com/​joyent/​node/​wiki/​Installing-Node.js-via-package-manager]] + 
-  * Documentation de nodejs: ​[[http://​nodejs.org/​docs/​latest/​api/​index.html]]+  ​[[https://​nodejs.org|site officiel nodejs.org]] (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 Node.js]] (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)
  
 ---- ----
-//Contributeur principal ​: [[utilisateurs:​nekdev]].//​+ 
 +//Contributeurs ​: [[:utilisateurs:​nekdev]], [[:​utilisateurs:​krodelabestiole]].//
  • nodejs.1330569808.txt.gz
  • Dernière modification: Le 01/03/2012, 03:43
  • par pseudodevingcinqcaractere