07

Outils & Environnement

Console avancée, npm, Node.js basics, Git

← Accueil

1 Console avancée

console.log("Message normal");
console.warn("⚠️ Avertissement — jaune dans la console");
console.error("❌ Erreur — rouge dans la console");
console.info("ℹ️ Info");

// Affichage tabulaire — parfait pour les tableaux d'objets
console.table([
  { nom: "Alice", age: 30 },
  { nom: "Bob",   age: 25 },
]);

// Mesure de performance
console.time("monOperation");
// ... code à mesurer
console.timeEnd("monOperation"); // affiche le temps écoulé

// Grouper les logs
console.group("Détails utilisateur");
console.log("Nom : Alice");
console.log("Email : alice@example.com");
console.groupEnd();

// Assertion (n'affiche que si faux)
console.assert(1 + 1 === 2, "Les maths sont cassées");
console.assert(1 + 1 === 3, "Ceci s'affiche en erreur");
💡 Astuce : dans Chrome DevTools, filtre par "Warnings" ou "Errors" pour ne voir que ce qui est important.

2 Node.js — bases

Node.js permet d'exécuter JavaScript sans navigateur, côté serveur ou en script.

Exécuter un fichier :

node monScript.js

Modules CommonJS (Node.js classique) :

// importer
const fs   = require('fs');
const path = require('path');

// exporter
module.exports = { maFonction };

Lire un fichier JSON :

const fs   = require('fs');
const path = require('path');

const fichier = path.join(__dirname, 'donnees.json');
const contenu = fs.readFileSync(fichier, 'utf-8');
const donnees = JSON.parse(contenu);
console.log(donnees);

Écrire un fichier :

fs.writeFileSync('rapport.txt', 'Contenu du rapport\n', 'utf-8');
Erreur fréquente :
// readFileSync retourne un Buffer, pas une string, sans 'utf-8'
const contenu = fs.readFileSync('fichier.json');         // Buffer
JSON.parse(contenu); // peut planter
const contenu = fs.readFileSync('fichier.json', 'utf-8'); // ✅

3 npm — gestionnaire de paquets

# Initialiser un projet
npm init -y            # crée package.json

# Installer une dépendance
npm install dayjs      # dépendance de production
npm install --save-dev nodemon  # dépendance de dev
const dayjs = require('dayjs');
console.log(dayjs().format('DD/MM/YYYY')); // aujourd'hui formaté

Scripts npm (dans package.json) :

{
  "scripts": {
    "start": "node index.js",
    "dev":   "nodemon index.js"
  }
}
npm run start
npm run dev

4 Git avec un projet JS

# Initialiser
git init

# .gitignore IMPORTANT — à créer avant git add
echo "node_modules/" >> .gitignore
echo ".env"          >> .gitignore

# Workflow classique
git add .
git commit -m "feat: ajouter la fonctionnalité X"
git push origin main

Conventions de commits :

feat:     nouvelle fonctionnalité
fix:      correction de bug
refactor: refactorisation sans changement de comportement
docs:     documentation
style:    formatage
chore:    tâche technique (mise à jour dépendance, config)

5 Débugger avec VS Code

  1. Crée un fichier .vscode/launch.json :
{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "node",
      "request": "launch",
      "name": "Debug Node",
      "program": "${workspaceFolder}/index.js"
    }
  ]
}
  1. Appuie sur F5 pour lancer le débogueur
  2. Pose des breakpoints en cliquant à gauche du numéro de ligne
  3. Inspecte les variables dans le panneau "Variables"

Résumé rapide

OutilCommande / Usage
Exécuternode script.js
Init projetnpm init -y
Installer paquetnpm install nom
Lancer scriptnpm run start
Versionnergit add . && git commit -m "..."
Lire fichierfs.readFileSync(path, 'utf-8')
🖥️

Mini-Projet : Script Node.js

Un script autonome à exécuter avec node mini-projet/rapport.js dans le terminal.

Exercices & Solutions

Télécharge les fichiers, ouvre-les dans ton éditeur et travaille directement dedans.

📝 exercices.js

5 exercices sur la console, Node.js, npm (dayjs) et un script autonome complet.

🟢 ×2 Facile 🟡 ×2 Moyen 🔴 ×1 Difficile
⬇ Télécharger
solutions.js

Corrections complètes. À consulter après avoir essayé.

Corrigé complet Best practices
⬇ Télécharger
🧠 Tester mes connaissances