JavaScript¶
Quelques notes¶
- JavaScript est une marque déposée.
- ECMAScript est le nom utilisé pour la standardisation du langage.
- TypeScript est une surcouche permettant de typer les variables.
- TypeScript s'accompagne d'un transpilateur (tsc)
- L'utilisation d'un bundler évitera toutefois des problèmes... (voir TypeScript et NodeJS - La blague de la gestion des extensions...)
- Constat : D'autres langages ont évolués pour rendre le typage optionnels PHP - Type declarations, Python - typing...
NodeJS¶
Pour installer NodeJS, voir :
- nodejs.org - Download Node.js
- js/install-nodejs.sh qui assure l'installation de NodeJS pour Ubuntu et Debian.
- js/nodejs-startup.ps1 qui est exploitable comme suit pour faire un raccourci Windows pour démarrer un terminal avec activation de fnm (Fast Node Manager) :
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe powershell.exe -NoExit -ExecutionPolicy Bypass -File "C:\...\toolbox\js\nodejs-startup.ps1"
Gestion de dépendances¶
- npm assure le téléchargement des dépendances et l'exécution des scripts définis dans le fichier
package.json
. - yarn est une alternative possible à npm
- www.npmjs.com est le principal dépôt public.
- npm-check-updates facilite la mise à jour des dépendances :
# Pour identifier les mises à jour possibles
npx npm-check-updates
# Pour mettre à jour les dépendances sans modifier la version majeure :
npx npm-check-updates -u -t minor
Bundlers¶
# Pour un projet React+TypeScript
npm create vite@latest demo-vite-ts -- --template react-ts
cd demo-vite-ts
npm run dev
Création d'API WEB¶
- express est un framework de développement d'application et d'API en javascript.
- express-validator donne un cadre pour la validation des paramètres.
- NestJS et Fastify comptent parmi les alternatives possibles à NextJS (Voir Top 10 Express.js Alternatives)
- socket.io simplifie l'implémentation de WebSocket en JS.
Création d'API CLI¶
- commander simplifie la gestion des paramètres passés en ligne de commande et la mise en oeuvre d'un
--help
.
Frameworks¶
Tests unitaires et fonctionnels¶
- Mocha pour l'exécution des tests unitaires + Chai supportant différents styles d'assertions (should, expect et assert)
- Jest est une alternative qui inclue les assertions.
- ts-jest assure la transpilation pour TypeScript et ES6
- supertest permet de tester un service HTTP
Cartographie WEB¶
- leaflet est une bibliothèque de cartographie web simple d'utilisation.
- OpenLayers est une bibliothèque de cartographie web disposant de fonctionnalités avancées.
- ol-ext propose un ensemble d'extensions pour OpenLayers.
Manipulation de données géographiques¶
- proj4js permet de transformer des coordonnées géographiques
- https://epsg.io/2154.js permet de récupérer la définition de Lambert93 pour cette bibliothèque.
- Voir aussi spatialreference.org qui est une alternative à epsg.io
- jsts est portage en JavaScript de la bibliotheque java JTS (portée en C++ sous le nom GEOS pour PostGIS) permettant d'effectuer des calculs géométriques tels des calculs de zones tampons.
- turfjs permet elle aussi de réaliser de calculs géométriques avec des données GeoJSON et des coordonnées en longitude et latitude.
- mapshaper est un utilitaire proposant entre autre des fonctionnalités de simplification géométrique conservant la topologie à l'échelle d'une couche.
- topojson-simplify est lui aussi un utilitaire de simplification des géométries conservant la topologie.
- node-gdal est un binding NodeJS de la bibliothèque GDAL supportant de nombreux formats vecteurs et images.
Rendu 3D¶
- threejs est une bibliothèque de visualisation 3D généraliste s'appuyant sur WebGL.
- KhronosGroup/glTF-Blender-IO permet d'exporter des modèles blender pour ThreeJS.
- cesiumjs permet l'affichage d'un globe 3D.
- iTowns permet l'affichage sur un globe 3D ou en vue immersive.
Markdown¶
- marked.js pour la conversion de markdown en HTML.
- marpit pour la convertion de markdown en présentation HTML.
- remarkjs pour la convertion de markdown en présentation HTML.
Divers¶
- ejs est un moteur de template.
- tinymce offre un éditeur WYSIWYG pour du contenu HTML.
- json-editor permet la génération de formulaire d'édition HTML pour l'édition de données en fonction d'un schéma JSON.
- axios est client HTTP en JS offrant des résultats sous forme de Promise (voir blog.logrocket.com - Axios vs. Fetch (2025 update): Which should you use for HTTP requests?)
- Elasticlunr.js est un moteur de recherche full-text en JavaScript.
Ressources¶
Les bases :
- www.w3schools.com - JavaScript Tutorial pour découvrir progressivement la syntaxe et les concepts.
- www.w3schools.com - JavaScript Versions pour suivre les évolutions, par ex :
- www.w3schools.com - JavaScript and HTML DOM Reference
NodeJS et npm :
- nodejs.org - api : Documentation de référence de NodeJS
- www.npmjs.com - Bibliothèque JavaScript populaires : Bibliothèque JavaScript populaires
Deno (alternative à NodeJS) :