4-3 Installer et configurer Vite
Installation de Vite et Bootstrap via npm
Vite requiert node
pour fonctionner. Vous devriez déjà avoir node sur votre ordinateur et être en mesure d'exécuter des commandes de type npm
.
SI ce n'est pas le cas, vous pouvez télécharger Node ici.
Si la commande npm
fonctionne dans un terminal, vous pouvez poursuivre.
- initialiser npm En ligne de commande, assurez-vous d'être dans le dossier du projet
Snowfall.Web.Mvc
(pas dans le dossier général de la solution.), puis faire npm init pour initialiser:npm init -y
Pour ouvrir une invite de commande dans le bon dossier projet, vous pouvez faire un clic droit
sur le dossier du projet, puis Open In
-> Terminal
.
Cela devrait avoir créé un fichier package.json
sous le projet MVC (au même niveau que Program.cs).
-
Installer Vite Installer la dépendance
vite
à l'aide de npm. On utilise--save-dev
puisqu'il s'agit d'une dépendance de développement seulement.npm i --save-dev vite
-
Installer Bootstrap Installer
Bootstrap
et sa dépendancepopper
.npm i bootstrap@5.3.3 @popperjs/core
-
Installer
Sass
pour compiler.npm i --save-dev sass
Si vous basculez en mode File System
dans Rider, vous devriez avoir un dossier node_modules
contenant un dossier bootstrap
.
Ajout de dossier assets
et fichiers associés au projet
Il nous faut un endroit pour mettre notre SCSS personnalisé.
Comme le SCSS n'est pas publiquement accessible, puisque le navigateur n'est pas en mesure de le lire directement et qu'il s'agit de code source, on mettra le SCSS personnalisé à l'extérieur de wwwroot
.
En effet, durant le processus de compilation, c'est là que nous déplacerons le résultat CSS vers wwwroot
.
Nous allons créer un dossier assets
à la racine du projet MVC pour y mettre nos fichiers JavaScript et SCSS.
- Dossier assets. Créez un dossier
assets
à la racine du projet MVC. - Dossiers
scss
etjs
. Sous ce dossierassets
, créez deux dossiers:scss
etjs
.
Créer le fichier assets/scss/app.scss
- Clic droit sur le dossier
assets/scss
Add
->Stylesheet
- Nommer le fichier
app
- Sélectionner
SCSS
dans la liste comme type de stylesheet. - Un fichier
app.scss
devrait avoir été créé
Créer le fichier assets/js/app.js
- Clic droit sur le dossier
assets/js
Add
->JavaScript File
- Nommer le fichier
app
- Un fichier
app.js
devrait avoir été créé
Vous devriez maintenant avoir la structure suivante:
Configuration de Vite
Nous devons dire à Vite
quel est le fichier d'entrée qu'il utilisera. Dans notre cas, ce sera app.js
. Nous y reviendrons, mais app.js pourra faire référence à du JavaScript, mais sera aussi utilisé pour charger les styles scss.
- Fichier de configuration. Créez un fichier
vite.config.js
à la racine de votre projet. Ce fichier contient la ou les configurations de Vite. - Mettre la config suivante dans le fichier
Snowfall.Web.Mvc/vite.config.js
import { defineConfig } from 'vite'
import { resolve } from 'path'
export default defineConfig({
build: {
manifest: true,
rollupOptions: {
input: resolve(__dirname, 'assets/js/app.js'),
},
outDir: resolve(__dirname, 'wwwroot/dist'),
},
resolve: {
alias: {
}
},
})
Importation de Bootstrap dans app.scss
Le fichier app.scss
est en quelque sorte le point d'entrée des styles de l'application. Nous devons donc importer Bootstrap dans ce fichier.
Dans le fichier app.scss
, importez Bootstrap:
// Importation de Bootstrap
@import "bootstrap/scss/bootstrap";
Fichier app.js
Dans le fichier app.js, importons notre fichier app.scss
ainsi que le JavaScript de Bootstrap.:
import 'vite/modulepreload-polyfill'
// Notre Scss, contenant Bootstrap
import '../scss/app.scss'
// Importation du JavaScript de Bootstrap
import * as bootstrap from 'bootstrap'
Il peut sembler contre intuitif de charger du css/scss dans un fichier JavaScript, mais au fond ce fichier d'entrée (app.scss
) sera lu et interprété par Vite pour en faire quelque chose de cohérent.
Tâches de départ de Vite
En mode développement, Vite roule comme un serveur indépendant et rend disponible les ressources dont nous avons besoin via une URL. L'avantage est qu'il écoute et réagit aux changements apportés aux fichiers SCSS et JavaScript pour que ces derniers soient disponibles instantanément sans avoir à recompiler manuellement.
Nous allons donc créer des raccourcis vers les tâches fréquentes de Vite (dev et build principalement).
Dans package.json
modifiez le bloc script
par celui-ci pour vous permettre de rouler facilement Vite:
{
"scripts": {
"dev": "vite",
"build": "vite build",
"preview": "vite preview"
},
...
Vous pouvez enlever le script test
présent dans package.json
.
Exécuter le serveur de compilation et développement de Vite
Dans une fenêtre de terminal, exécutez la commande suivante dans le dossier de projet MVC (Snowfall.Web.Mvc
)
npm run dev
Vous verrez ceci dans la console:
VITE v4.0.4 ready in 197 ms
➜ Local: http://127.0.0.1:5173/
➜ Network: use --host to expose
➜ press h to show help
Le principe derrière Vite en mode développement est qu'il met à votre disposition un serveur d'assets. Dès qu'un changement est effectué à un fichier, il s'occupera de mettre à jour les références.
Ainsi, dans notre gabarit de page _Layout
, nous devons faire référence à ce serveur pour le CSS et le JavaScript.
Modification du _Layout
Modifiez le _Layout
pour retirer les dépendances à bootstrap.min.css
et site.css
et les remplacer par le bloc surligné:
/...
<head>
<meta charset="utf-8"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<title>@ViewData["Title"] - Snowfall</title>
<environment names="Development">
<!-- Vite dev server -->
<script type="module" src="http://localhost:5173/assets/js/app.js"></script>
</environment>
<environment names="Staging,Production">
<script type="module" crossorigin asp-src-include="~/dist/assets/app-*.js"></script>
<link rel="stylesheet" asp-href-include="~/dist/assets/app-*.css" />
</environment>
<link rel="stylesheet" href="~/Snowfall.Web.Mvc.styles.css" asp-append-version="true"/>
</head>
//...
En mode développement, on utilise le serveur de Vite (http://localhost:5173/
) qui s'occupera de gérer les différents assets correctement et de les rafraichir au besoin.
En mode "production", on utilise les assets compilés directement qui seront envotés dans le dossier dist
de wwwroot
.
Bien que nous ne l'utiliserons pas vraiment, vous pouvez exécuter npm run build
pour un aperçu du processus de compilation en mode "production".
Exécuter le projet
- Assurez vous que le serveur Vite roule via
npm run dev
- Exécuter le projet
- Vous devriez voir le site normalement, avec les styles de bootstrap.
Vous avez peut-être l'impression d'être retourné à la case départ, mais nous allons voir à la prochaine section l'avantage de cette méthode.
Vous devrez vous assurer de toujours exécuter npm run dev
dans un terminal en parallèle de votre projet .NET. Vous pouvez le faire directement dans une fenêtre de terminal Rider.
Ceci dit, vous pouvez vous créer une configuration dans Rider (voir étape suivante).
Configuration optionnelle
Il est aussi possible de configurer une autre configuration de lancement Rider (un peu comme http
dans le haut de la fenêtre avec Run
et Debug
). Vous aurez alors deux instances qui roulent en parallèle (.NET et npm) et accessibles à partir du menu principal.
Edit Configurations
- Cliquer sur le
+
- Choisir
npm
- Remplir les infos comme ceci
- Cliquer sur
OK
- Vous aurez maintenant accès à la configuration
Vite
- Vous devrez faire
Launch another configuration
pour lancer une seconde configuration en parallèle (commehttp
par exemple)