Fichiers de configuration de l'environnement
Vue d'ensemble
Après la création du projet et l'installation des dépendances, vous trouvez les fichiers de configuration de l'environnement suivants à la racine :
- package.json
- vite.config.js
- jsconfig.json (présent si vous avez choisi JavaScript)
package.json
Ce fichier contient les informations descriptives du projet (nom, version, configuration), la liste des dépendances nécessaires, ainsi que les scripts npm permettant d'automatiser certaines tâches comme lancer le serveur de développement, créer un build de production ou tester l'application. Il est créé automatiquement lors de la génération du projet avec npm create vue@latest. Les dépendances qui y sont listées sont installées lorsque l'on exécute npm install, car npm consulte ce fichier pour savoir quelles bibliothèques télécharger et quelles versions utiliser.
Exemple de contenu :
{
"name": "mon-projet",
"version": "0.0.0",
"private": true,
"type": "module",
"engines": {
"node": "^20.19.0 || >=22.12.0"
},
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
"dependencies": {
"vue": "^3.5.18"
},
"devDependencies": {
"@vitejs/plugin-vue": "^6.0.1",
"vite": "^7.0.6",
"vite-plugin-vue-devtools": "^8.0.0"
}
}
- name : Nom interne du projet utilisé par npm et les outils
-
version : Version actuelle du projet au format MAJEUR.MINEUR.CORRECTIF
-
MAJEUR : gros changement qui casse la compatibilité avec l'ancienne version
ex. : le site impose maintenant des mots de passe complexes (chiffres et caractères spéciaux) et les anciens mots de passe simples ne fonctionnent plus (l'utilisateur sera invité à changer son mot de passe pour un format conforme). -
MINEUR : ajout de nouvelles fonctionnalités, tout en gardant la compatibilité
ex. : ajout d'une page "contact" alors que toutes les pages existantes continuent de fonctionner comme avant. -
CORRECTIF : petite modification qui corrige un problème sans rien casser
ex. : correction d'une erreur d'affichage sur la page d'accueil.
-
MAJEUR : gros changement qui casse la compatibilité avec l'ancienne version
- private : Indique si le projet peut être publié sur le registre npm. Lorsque la valeur est true, npm bloque toute tentative de publication. Cela sert à éviter qu'un projet interne ou en cours de développement ne soit envoyé par erreur sur le registre public. Cette option est souvent activée par défaut pour les applications web afin de garantir qu'elles restent locales ou privées dans un dépôt Git.
- type : Définit le mode de gestion des modules JavaScript par Node.js. La valeur "module" active le format ECMAScript Modules (ESM), ce qui permet d'utiliser la syntaxe import et export à la place de l'ancien format CommonJS qui utilisait require() et module.exports. Avec cette configuration, tous les fichiers .js du projet sont traités comme des modules ESM par défaut, sauf si un fichier précise explicitement un autre type via son extension (par exemple .cjs pour forcer le CommonJS).
-
engines.node :
Indique les versions de Node.js compatibles avec le projet.
Le symbole ^ devant 20.19.0 signifie "compatible avec toutes les versions de la branche 20 à partir de 20.19.0 inclus" jusqu'à la version 21.0.0 exclue.
La partie >=22.12.0 autorise aussi la branche 22 à partir de 22.12.0 inclus. Les versions intermédiaires (comme Node 21 ou les premières 22.x) ne sont pas acceptées, car elles peuvent contenir des changements instables ou incompatibles. Cette restriction garantit que le projet utilise uniquement des versions de Node testées et approuvées pour son bon fonctionnement. -
scripts :
Liste de raccourcis de commandes que l'on peut exécuter avec npm run <nom>.
Ces scripts permettent de lancer rapidement les tâches courantes du projet sans avoir à retenir des commandes longues.
- dev : Lance Vite en mode développement. Ce mode démarre un serveur local et affiche l'application dans le navigateur. Toute modification du code est immédiatement reflétée à l'écran grâce au Hot Module Replacement (rechargement à chaud) qui met à jour uniquement la partie modifiée sans recharger toute la page.
- build : Prépare la version finale optimisée du projet pour la mise en ligne. Cette étape effectue un regroupement des fichiers (bundling), une minification du code, un cache busting, et d'autres optimisations. Le résultat est placé dans un dossier dist, prêt à être envoyé sur un serveur web.
- preview : Lance un petit serveur local qui affiche le contenu du dossier dist. Ce dossier doit avoir été généré juste avant avec npm run build. Cette commande permet de tester en conditions réelles le site tel qu'il serait servi par un hébergeur, afin de vérifier que tout fonctionne correctement avant la mise en ligne.
-
dependencies : Bibliothèques requises pendant l'exécution (utilisées aussi bien en développement qu'en production)
- vue : le framework Vue nécessaire pour faire tourner l'application. L'intervalle ^3.5.18 signifie "utiliser la version 3.5.18 ou plus récente, tant qu'on reste dans la version majeure 3 (cela n'ira donc jamais vers la version 4)".
-
devDependencies : Outils nécessaires uniquement pendant le développement
- @vitejs/plugin-vue : Plugin officiel pour que Vite comprenne les fichiers .vue
- vite : Outil de serveur de développement et de build du projet
- vite-plugin-vue-devtools : Intègre les Vue Devtools dans l'environnement de dev pour inspecter composants et état
vite.config.js
Fichier de configuration de Vite. Il permet de personnaliser le comportement de l'outil (ajout de plugins comme Vue, configuration d'alias de chemins, options de build, etc.). Ce fichier est automatiquement lu par Vite lorsqu'on exécute une commande qui le lance, comme npm run ....
import { fileURLToPath, URL } from 'node:url'
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueDevTools from 'vite-plugin-vue-devtools'
// https://vite.dev/config/
export default defineConfig({
plugins: [
vue(),
vueDevTools(),
],
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url))
},
},
})
- import { fileURLToPath, URL } from 'node:url' : Importe depuis le module interne node:url deux fonctions de Node.js permettant de manipuler des chemins à partir d'URL. Elles servent ici à convertir l'URL du dossier "src" en chemin de fichier utilisable par Vite.
- import { defineConfig } from 'vite' : Importe la fonction defineConfig fournie par Vite. Son usage n'est pas obligatoire, mais il aide les éditeurs comme VS Code à reconnaître le type exact de la configuration attendue par Vite. Cela active l'auto-complétion, les suggestions et la vérification des clés uniquement dans ce fichier de configuration ("vite.config.js" ou "vite.config.ts"), ce qui réduit les risques d'erreurs lors de leur configuration.
- import vue from '@vitejs/plugin-vue' : Importe le plugin officiel Vue pour Vite, nécessaire pour que Vite comprenne et compile les fichiers ".vue".
- import vueDevTools from 'vite-plugin-vue-devtools' : Importe un plugin qui intègre directement les Vue Devtools dans l'environnement de développement, ce qui permet d'inspecter les composants et l'état de l'application sans installer d'extension de navigateur.
- export default defineConfig({...}) : Exporte la configuration principale de Vite. Tout ce qui se trouve entre les accolades est lu par Vite au démarrage.
- plugins: [vue(), vueDevTools()] : Liste des plugins utilisés par Vite pour ce projet. Ici, vue() permet la prise en charge des fichiers ".vue" et vueDevTools() active l'outil de debug intégré.
-
resolve: { alias: {...} } :
Permet de définir des alias de chemin afin de simplifier les imports dans le code.
-
'@': fileURLToPath(new URL('./src', import.meta.url)) :
Crée l'alias @ qui pointe vers le dossier "src".
La fonction fileURLToPath convertit ici l'URL vers un chemin de fichier valide pour le système d'exploitation,
ce qui rend l'alias compatible quel que soit l'OS utilisé.
Par exemple, au lieu d'écrire import MonComposant from 'C:/Users/Christophe/mon-projet/src/MonComposant.vue', on peut écrire import MonComposant from '@/MonComposant.vue'.
-
'@': fileURLToPath(new URL('./src', import.meta.url)) :
Crée l'alias @ qui pointe vers le dossier "src".
La fonction fileURLToPath convertit ici l'URL vers un chemin de fichier valide pour le système d'exploitation,
ce qui rend l'alias compatible quel que soit l'OS utilisé.
jsconfig.json
Fichier de configuration lu par certains éditeurs comme VS Code pour améliorer l'expérience de développement. Il ne change pas directement le fonctionnement du code dans le navigateur ou dans Node.js, mais sert à fournir une auto-complétion plus précise, une navigation rapide dans les fichiers et une meilleure détection des erreurs.
Exemple de contenu :
{
"compilerOptions": {
"paths": {
"@/*": ["./src/*"]
}
},
"exclude": ["node_modules", "dist"]
}
- compilerOptions.paths : Définit des alias de chemins pour simplifier les imports dans le code. Ici, "@/*": ["./src/*"] signifie que @ pointe vers le dossier "src". Par exemple, import MonComposant from '@/components/MonComposant.vue' sera interprété par l'éditeur comme un chemin vers "src/components/MonComposant.vue". Cela permet d'aligner le comportement de l'éditeur avec celui défini dans "vite.config.js" (section resolve.alias), ce qui garantit la cohérence entre l'éditeur et l'exécution réelle du projet.
- exclude : Indique à l'éditeur quels dossiers ignorer dans l'analyse du code. Ici, node_modules et dist sont exclus pour éviter d'alourdir la recherche et la complétion, car ils contiennent soit des dépendances externes déjà compilées, soit la version finale du projet.