Laravel 12 / Vue.js / Inertia.js / Nuxt UI Pro Boilerplate A powerfull boilerplate for Laravel 12, Vue.js & Inertia.js with a well-structured API, ready-to-use authentication and a robust user role system. Quick setup, high performance, and a modern tech stack.
  • Blade 40.1%
  • PHP 34.2%
  • Vue 21.6%
  • TypeScript 3.1%
  • JavaScript 0.8%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-01-23 21:19:47 +01:00
.vscode TEST SLIDEOVER 2025-08-20 21:30:36 +02:00
app EditModal Init 2025-07-31 23:06:59 +02:00
bootstrap INSTALLATION/CONFIGURATION Laravel Fortify 2025-07-16 22:52:01 +02:00
config REGISTER/LOGIN IMPLEMENTATION 2025-07-17 17:32:04 +02:00
database SET USERS SEEDER 2025-07-31 21:16:04 +02:00
public CREATE LARAVEL PROJECT 2025-07-10 17:15:25 +02:00
resources TEST SLIDEOVER 2025-08-20 21:30:36 +02:00
routes REFACTOR NAMES 2025-07-24 12:15:40 +02:00
storage CREATE LARAVEL PROJECT 2025-07-10 17:15:25 +02:00
tests CREATE LARAVEL PROJECT 2025-07-10 17:15:25 +02:00
.editorconfig UPDATE PROJECT CONF 2025-07-24 16:34:56 +02:00
.env REFACTOR 2025-07-22 16:57:17 +02:00
.gitignore UPDATE PROJECT CONF 2025-07-24 16:34:56 +02:00
.prettierrc TEST SLIDEOVER 2025-08-20 21:30:36 +02:00
artisan CREATE LARAVEL PROJECT 2025-07-10 17:15:25 +02:00
auto-imports.d.ts FIX TITLE VALUE + UPDATE HOME 2025-07-16 22:02:08 +02:00
bun.lock FORMAT/LINT Code 2025-07-31 15:17:00 +02:00
CLAUDE.md ADD CLAUDE.md 2026-01-23 21:19:47 +01:00
components.d.ts EditModal Init 2025-07-31 23:06:59 +02:00
composer.json ADD LOGIN/REGISTER Vue.js PAGES 2025-07-16 23:15:07 +02:00
composer.lock ADD LOGIN/REGISTER Vue.js PAGES 2025-07-16 23:15:07 +02:00
eslint.config.js TEST SLIDEOVER 2025-08-20 21:30:36 +02:00
LICENSE Initial commit 2025-07-10 17:00:54 +02:00
package-lock.json REFACTOR 2025-07-22 16:57:17 +02:00
package.json FIX PRETTIER MODULES 2025-07-25 12:04:08 +02:00
phpunit.xml CREATE LARAVEL PROJECT 2025-07-10 17:15:25 +02:00
README.md REFACTOR 2025-07-22 16:57:17 +02:00
ROADMAP.md ADD PROJECT DESCRIPTION 2025-07-23 08:58:16 +02:00
tsconfig.json REFACTOR NAMES 2025-07-24 12:15:40 +02:00
vite.config.js REFACTOR NAMES 2025-07-24 12:15:40 +02:00

Laravel Logo
Vue.js Logo Vite.js Logo

Inertia Logo

Laravue

Vue.js avec Laravel : Intégration de Vue.js et Inertia.js avec Laravel

Inertia.js combine de manière transparente l'agilité du frontend de Vue.js avec le backend robuste de Laravel, éliminant le besoin d'un développement d'une API séparée.

Laravel gère le routage, l'hydratation des données et l'authentification, tandis que Vue crée des expériences utilisateur captivantes, recevant sans effort des données par Inertia.js.

Avec le rendu côté serveur, toute l'application est initialement rendue sur le serveur, garantissant des vitesses de charge initiales optimales et rapides.

Condition préalable

  • PHP 8.2 ou plus,
  • Node.js et NPM,
  • Composer.

Création du projet Laravel

Tout d'abord, créez un nouveau projet Laravel à l'aide de Laravel Installer :

laravel new laravue
cd laravue

Installer Vue.js

npm install vue@latest

Configuration côté serveur

Installez l'adaptateur Laravel Inertia.js

composer require inertiajs/inertia-laravel

Créer un modèle racine

Créer un nouveau fichier dans resources/views/app.blade.php :

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8" />
		<meta
			name="viewport"
			content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
		@vite('resources/js/app.js') @inertiaHead
	</head>
	<body>
		@inertia
	</body>
</html>

Installer et configurer le middleware

Générer le middleware Inertia.js :

php artisan inertia:middleware

Ajoutez le middleware au fichier bootstrap/app.php :

use App\Http\Middleware\HandleInertiaRequests;
...
->withMiddleware(function (Middleware $middleware) {
    $middleware->web(append: [
        HandleInertiaRequests::class,
    ]);
})
...

Configuration côté client

Installation de l'adaptateur Inertia Vue

npm install @inertiajs/vue3

Configuration de Vue et Inertia :

Mettez à jour le fichier ressources/js/app.js :

import { createApp, h } from "vue";
import { createInertiaApp } from "@inertiajs/vue3";

createInertiaApp({
	resolve: (name) => {
		const pages = import.meta.glob("./Pages/**/*.vue", { eager: true });
		return pages[`./Pages/${name}.vue`];
	},
	setup({ el, App, props, plugin }) {
		createApp({ render: () => h(App, props) })
			.use(plugin)
			.mount(el);
	},
});

Installation et configuration du plugin Vite

Installation du plugin Vue Vite :

npm install @vitejs/plugin-vue

Mettez à jour le fichier vite.config.js :

import { defineConfig } from "vite";
import laravel from "laravel-vite-plugin";
import vue from "@vitejs/plugin-vue";
import tailwindcss from "@tailwindcss/vite";

export default defineConfig({
	plugins: [
		laravel({
			input: ["resources/css/app.css", "resources/js/app.js"],
			refresh: true,
		}),
		vue(),
		tailwindcss(),
	],
});

Tester la configuration

Créer une page de test

Créez un nouveau composant Vue sur resources/js/Pages/Home.vue :

<template>
	<h1>Hello world</h1>
</template>

Ajouter la route sur Laravel

Mettez à jour le fichier routes/web.php :

use Inertia\Inertia;
Route::get('/', function () {
    return Inertia::render('Home');
});

Démarrer les serveurs de développement

Exécutez les serveurs de développement Laravel et Vite :

# Terminal 1
php artisan serve
# Terminal 2
npm run dev

Ou les 2 en même temps via composer :

composer run dev

Se rendre sur http://localhost:8000 pour voir notre application en cours d'exécution !

Structure de répertoire

Notre structure de projet devrait ressembler à ceci :

laravue/
├── resources/
│   ├── js/
│   │   ├── Pages/
│   │   │   └── Home.vue
│   │   └── app.js
│   └── views/
│       └── app.blade.php
├── routes/
│   └── web.php
├── package.json
└── vite.config.js

Installation de Nuxt UI Pro

npm install @nuxt/ui-pro

Ajouter le plugin au projet via le fichier vite.config.ts :

import vue from "@vitejs/plugin-vue";
import laravel from "laravel-vite-plugin";
import path from "path";
import { resolve } from "node:path";
import { defineConfig } from "vite";
import uiPro from "@nuxt/ui-pro/vite";

export default defineConfig({
	plugins: [
		laravel({
			input: ["resources/js/app.ts"],
			ssr: "resources/js/ssr.ts",
			refresh: true,
		}),
		vue({
			template: {
				transformAssetUrls: {
					base: null,
					includeAbsolute: false,
				},
			},
		}),
		uiPro({
			inertia: true,
			components: {
				dirs: ["resources/js/components"],
			},
			ui: {
				colors: {
					primary: "scarlet",
					neutral: "neutral",
				},
			},
		}),
	],
	resolve: {
		alias: {
			"@": path.resolve(__dirname, "./resources/js"),
			"ziggy-js": resolve(__dirname, "vendor/tightenco/ziggy"),
		},
	},
});

Installation des outils de formatage & codage

Référence : https://vueschool.io/articles/vuejs-tutorials/eslint-and-prettier-with-vite-and-vue-js-3/

Dans le répertoire courant :

ESLint

ESlint 9 introduit une nouvelle structure de configuration appelée Flat Config, qui simplifie et modernise la configuration. Si vous cherchez à passer à Eslint 9 et que vous souhaitez des conseils sur le processus, explorez cet article pour un guide de mise à niveau étape par étape pour Eslint 9.

Installation Eslint et du plugin Vue pour Eslint :

npm install --save-dev eslint eslint-plugin-vue

Configurer Eslint en créant un fichier eslint.config.js avec la configuration suivante :

// eslint.config.js
module.exports = {
	env: {
		node: true,
	},
	extends: ["eslint:recommended", "plugin:vue/vue3-recommended"],
	rules: {
		// override/add rules settings here, such as:
		// 'vue/no-unused-vars': 'error'
	},
};

Installer eslint-config-prettier :

npm install eslint-config-prettier --save-dev

On rajoute la configuration au fichier eslint.config.js :

// eslint.config.js
module.exports = {
	env: {
		node: true,
	},
	extends: ["eslint:recommended", "plugin:vue/vue3-recommended", "prettier"],
	rules: {
		// override/add rules settings here, such as:
		// 'vue/no-unused-vars': 'error'
	},
};

Configuration de ESLint :

npm init @eslint/config@latest

Erreurs Eslint dans le navigateur

npm install vite-plugin-eslint --save-dev