Formation Vue 3 | Installation
Il existe plusieurs façons d'installer Vue.js, selon les besoins du projet et les préférences du développeur. Nous nous intéresserons aux installations via CDN et avec l'outil Vite.
Installation via CDN
L’avantage indéniable d’un lien CDN est qu’il permet d’inclure Vue.js à l’aide d’une simple balise <script>
. Cela permet entre autres de ne charger Vue.js que sur une page de notre site.
En développement on peut utiliser la dernière version de cette manière :
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
Sur la page web, on peut vérifier que Vue.js a bien été initialisé en inspectant la console et en constatant la présence du message suivant :
You are running a development build of Vue.
Make sure to use the production build (*.prod.js) when deploying for production.
L’utilisation de Vue.js à partir d’un CDN rend la configuration plus simple et convient à la création de sites basiques, de prototypes ou encore à des fins pédagogiques.
En revanche, en l’absence de phase de “build” de l’application sur un serveur Node.js, vous ne pourrez pas tirer plein potentiel de Vue.js et notamment utiliser la syntaxe SFC (Single-File Component), dont nous parlerons par la suite.
Installation avec Vite
Qu’est-ce que Vite ?
Vite est un outil de build en temps réel pour les applications web basées sur JavaScript. Vite intègre Rollup pour « bundler » les assets et utilise un **serveur de développement intégré, **fournissant des temps de rechargement rapides et une expérience de développement fluide.
Voici les fonctionnalités principales permises par Vite :
- Live Reload : offre une expérience de développement en temps réel, avec un rechargement instantané des changements apportés au code.
- Modules ESM : prise en charge les modules ECMAScript natifs (ESM) sans transpiler vers d’autres formats.
- Préprocesseurs CSS : prise en charge des fichiers CSS, LESS, Sass, Stylus, etc.
- Import dynamique : permet un chargement plus rapide des composants en ne les chargeant que lorsqu’ils sont nécessaires, ce qui accélère considérablement le temps de chargement des applications Vue.js.
- Plugin pour Vue.js : Vite est particulièrement adapté pour le développement d’applications Vue.js, grâce à un plugin spécialement conçu pour le framework.
- Configuration minimale : nécessite une configuration minimale, ce qui facilite la prise en main et l’utilisation.
- Optimisation de la production : optimise automatiquement les fichiers pour la production, en générant des fichiers minifiés et en les préparant pour un déploiement efficace.
Si Vite peut être utilisé avec divers frameworks JavaScript tels que Vue.js, React, Svelte et d’autres, il s’avère redoutable lorsqu’il est couplé à Vue.js. Et pour cause, Vite a été initialement conçu par Evan You, le créateur de Vue.js, pour résoudre les problèmes de lenteur et de complexité associés à la compilation des projets Vue.js avec des outils comme Webpack.
Vite est livré avec un plugin spécialement conçu pour Vue.js qui permet de développer et de construire des applications Vue.js en temps réel. Ce plugin prend en charge les fonctionnalités clés de Vue.js que nous allons découvrir dans cette formation, telles que les :
- Templates
.vue
- Single-File Components (SFC)
- Directives
- Mixins
- Plugins Vue
- Routes
- Etc.
En résumé, Vite est un outil de build performant et facile à utiliser pour les projets Vue.js, qui peut aider les développeurs à accélérer leur processus de développement et à créer des applications web modernes plus rapidement.
Création du projet
Désormais, exécuter la commande suivante :
npm init vue@latest
Cette commande installe et exécute create-vue, l’outil de construction officiel d’application Vue.js. L’installation via create-vue, basée sur Vite est l’approche moderne qui vient remplacer Vue CLI, basé sur Webpack.
Cet outil permet d’initialiser l’application Vue.js en y ajoutant la configuration souhaitée. Pour cela il suffit de sélectionner Yes
or No
à chaque question :
Vue.js - The Progressive JavaScript Framework
√ Project name: ... MonProjet
√ Package name: ... monprojet
√ Add TypeScript? ... No / Yes
√ Add JSX Support? ... No / Yes
√ Add Vue Router for Single Page Application development? ... No / Yes
√ Add Pinia for state management? ... No / Yes
√ Add Vitest for Unit Testing? ... No / Yes
√ Add an End-to-End Testing Solution? » No / Yes
√ Add ESLint for code quality? ... No / Yes
√ Add Prettier for code formatting? ... No / Yes
Project name
: il s’agit du nom de votre projet. Ce nom sera donné au dossier racine.Package name
: il s’agit du nom du paquet. Il est défini automatiquement en se basant sur le nom du projet, en minuscule et sans espaces.Add TypeScript
: TypeScript est un langage de programmation open-source développé par Microsoft qui est un sur-ensemble typé de JavaScript.Add JSX Support
: JSX est une extension de syntaxe introduite par le framework React, pour écrire du HTML en JavaScript.Add Vue Router
: Vue Router est une bibliothèque de routage pour les applications Vue.js.Add Pinia
: Pinia est une bibliothèque de gestion d’état d’application pour Vue.js.Add Vitest
: Vitest est un framework de test unitaire pour les applications Vue.js. Un test unitaire permet d’exécuter chaque unité de code isolée du reste de l’application, facilitant ainsi l’ajout de nouvelles fonctionnalités, ainsi que la détection et la correction de bugs.Add an End-to-End Testing Solution
: Une solution de test de bout en bout (End to End ou “E2E”) est un outil qui permet d’automatiser les tests simulant les interactions de l’utilisateur avec l’interface utilisateur et en vérifiant le comportement de l’application dans son ensemble. Cypress et Playwright sont proposés par l’utilitaire.Add ESLint
: ESLint est un linter JavaScript configurable qui permet de détecter et de signaler les erreurs de code, les pratiques non recommandées et les conventions de style dans les projets JavaScript.Add Prettier
: Prettier est un outil de formatage de code JavaScript qui permet d’automatiser la mise en forme du code pour respecter un ensemble de règles de style prédéfinies.
Une fois le projet initialisé avec la configuration souhaitée.
Déplacez vous dans le projet :
cd MonProjet
Installez les dépendances du projet (spécifiées en amont) :
npm install
Lancement du serveur
Le lancement du serveur local pour travailler avec Vue 3 est effectué avec la commande vite
. Cette commande est ajoutée dans les scripts du fichier 📄 package.json
et s’utilise via l’alias suivant :
npm run dev
Cette commande démarre le serveur de développement qui prend en charge la compilation en temps réel de votre application ainsi qu’une fonctionnalité “Hot Module Replacement” (HMR), qui permet aux développeurs de voir les modifications apportées à leur code en temps réel sans avoir à recharger la page.
Par défaut, ce serveur local est démarré sur le port 3000
.
Architecture du projet
Familiarisons-nous avec l’arborescence d’un projet vue basique. Après avoir répondu No
à toutes les options, on obtient l’arborescence de projet suivante :
📁 MonProjet
├── 📁 node_modules
│ ├── 📄 module1
│ ├── 📄 module2
│ └── ...
├── 📁 public
│ └── 🖼️ favicon.ico
├── 📁 src
│ ├── 📁 assets
│ └── 📁 components
│ ├── 📄 App.vue
│ └── 📄 main.js
├── 📄 .gitignore
├── 📄 index.html
├── 📄 package.lock.json
├── 📄 package.json
├── 📄 README.md
└── 📄 vite.config.js
Dossiers principaux :
📁 node_modules
Contient l’ensemble des dépendances requises par l’application. Nous n’aurons pas besoin d’aller dans ce dossier qui sera entièrement géré par le gestionnaire de paquet npm
ou yarn
.
📁 public
Contient le favicon par défaut du site.
📁 src
Ce dossier est celui dans lequel nous passerons la quasi-totalité de notre temps, car il contiendra le code source spécifique à notre projet. On retrouve à l’intérieur :
📁 assets
: contient documents et médias (images, scripts, feuilles de styles, vidéos, PDF, etc.) que nous utilisons au sein de notre application.📁 components
: contient les composants de notre application ainsi que le fichier📄 main.js
qui instancie, configure, puis monte notre application et📄 App.vue
, le composant racine de notre application Vue.
À la racine, on retrouve tout un tas de fichiers de configuration dont les principaux sont :
📄 .gitignore
Ce fichier contient une liste de fichiers et dossiers qui ne doivent pas être envoyés vers le repository. Vous remarquerez qu’il spécifie les dossiers 📁 dist
et 📁 node_modules
.
📄 index.html
Il s’agit du point d’entrée de l’application Vue.js. On parle de fichier HTML racine.
C’est dans ce fichier que l’on ajoute la structure de base des pages web via les balises HTML de premier niveau (<html>
, <head>
et <body>
), les feuilles de style CSS, les scripts JavaScript et autres éléments nécessaires à l’affichage de l’application.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Vite App</title>
</head>
<body>
<div id="app"></div>
<script type="module" src="/src/main.js"></script>
</body>
</html>
Dans un projet Vue.js, la plupart du contenu de l’application est généré dynamiquement par Vue.js. Le fichier 📄 index.html
inclut donc simplement une balise <div id="app"></div>
, qui sert de conteneur pour l’application Vue.js générée via le fichier 📄 main.js
.
📄 package.json
C’est le fichier de configuration de base du projet. Il comprend les métadonnées du projet (nom, version, licence, etc.) ainsi que ses dépendances et les scripts exécutables en ligne de commande (serve, build…).
📄 package.lock.json
Il est généré lorsque le fichier 📄 package.json
ou l’architecture de dossier 📁 node_modules
subit des modifications. Ce fichier stocke la structure exacte de l’arborescence des dépendances à chaque installation. C’est une sorte de snapshot de l’état des dépendances du projet à un instant T.
📄 README.md
Ce fichier contient quelques informations utiles tels que :
- Des plugins utiles pour travailler avec Vue.js
- Les commandes principales du projet
- Des liens vers de la documentation pour configurer le projet
📄 vite.config.js
Ce fichier est utilisé dans un projet Vue.js pour configurer l’outil de développement Vite.
Il permet de configurer des options spécifiques à Vite pour adapter le processus de build et de développement à vos besoins. Par exemple, vous pouvez configurer des options pour :
- Spécifier les chemins des entrées et sorties de vos fichiers (sources et bundles)
- Définir des alias pour vos modules importés
- Configurer des plugins pour transformer vos fichiers sources
- Modifier les options du serveur de développement (port, proxy, https, etc.)
- Activer des fonctionnalités expérimentales de Vite
- Etc.