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-devpuisqu'il s'agit d'une dépendance de développement seulement.npm i --save-dev vite -
Installer Bootstrap Installer
Bootstrapet sa dépendancepopper.npm i bootstrap@5.3.3 @popperjs/core -
Installer
Sasspour 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
scssetjs. Sous ce dossierassets, créez deux dossiers:scssetjs.
Créer le fichier assets/scss/app.scss
- Clic droit sur le dossier
assets/scss Add->Stylesheet- Nommer le fichier
app - Sélectionner
SCSSdans la liste comme type de stylesheet.
- Un fichier
app.scssdevrait 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.jsdevrait 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 configurationpour lancer une seconde configuration en parallèle (commehttppar exemple)
