Laravel9.2.x 使用 Vite 安装 bootstrap5
hi,我是温馨,一名PHPer
与时俱进
Laravel 环境说明:Laravel9.2
Laravel9.2 开始已经使用 Vite
作为前端资源打包。按照以往的方式使用 bootstrap
时,会发现 bootstrap
样式并没有生效,而是默认使用了 Tailwind CSS
样式。
本篇文章就记录,使用 Vite
在 Laravel9.2x 中安装使用 bootstrap5
样式。
第一步:创建项目
composer create-project laravel/laravel la9_bootstrap
第二步:安装 Laravel UI
composer require laravel/ui
第三步:使用 bootstrap5
php artisan ui bootstrap --auth
若不需要使用 auth 系统,可以直接安装
php artisan ui bootstrap
第四步:vite.config.js
中导入 bootstrap5
这一步骤中,需要修改 vite.coffig.js
配置文件并删除 resources/css/app.css
修改前: vite.config.js
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [
laravel([
'resources/css/app.css',
'resources/js/app.js',
]),
],
});
【使用此处配置】修改后:vite.config.js
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import path from 'path'
export default defineConfig({
plugins: [
laravel([
'resources/js/app.js',
]),
],
resolve: {
alias: {
'~bootstrap': path.resolve(__dirname, 'node_modules/bootstrap'),
}
},
});
第五步:在 js 中导入 bootstrap5 SCSS
这一步中,需要在 resources/js/app.js
或 resources/js/bootstrap.js
中导入 bootstrap
。
// resources/js/app.js
import './bootstrap';
import '../sass/app.scss'
import * as bootstrap from 'bootstrap'
第六步:使用 @vite 替换 mix()
使用 Vite
进行管理时,需要使用 @vite
模板指令替换 mix()
助手函数。
# 将下面 2行替换成
<link rel="stylesheet" href="{{ mix('css/app.css') }}">
<script src="{{ mix('js/app.js') }}" defer></script>
# 替换为
@vite(['resources/js/app.js'])
下面就在 app.blade.php
模板文件中进行替换:
views/layouts/app.blade.php
<!doctype html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
<title>{{ config('app.name', 'Laravel') }}</title>
<!-- Scripts -->
@vite(['resources/js/app.js'])
{{-- <script src="{{ asset('js/app.js') }}" defer></script> --}}
<!-- Fonts -->
<link rel="dns-prefetch" href="//fonts.gstatic.com">
<link href="https://fonts.googleapis.com/css?family=Nunito" rel="stylesheet">
<!-- Styles -->
{{-- <link href="{{ asset('css/app.css') }}" rel="stylesheet"> --}}
</head>
<body>
<div id="app">
<nav class="navbar navbar-expand-md navbar-light bg-white shadow-sm">
<div class="container">
<a class="navbar-brand" href="{{ url('/') }}">
{{ config('app.name', 'Laravel') }}
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="{{ __('Toggle navigation') }}">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarSupportedContent">
<!-- Left Side Of Navbar -->
<ul class="navbar-nav me-auto">
</ul>
<!-- Right Side Of Navbar -->
<ul class="navbar-nav ms-auto">
<!-- Authentication Links -->
@guest
@if (Route::has('login'))
<li class="nav-item">
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
</li>
@endif
@if (Route::has('register'))
<li class="nav-item">
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
</li>
@endif
@else
<li class="nav-item dropdown">
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
{{ Auth::user()->name }}
</a>
<div class="dropdown-menu dropdown-menu-end" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ route('logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
{{ __('Logout') }}
</a>
<form id="logout-form" action="{{ route('logout') }}" method="POST" class="d-none">
@csrf
</form>
</div>
</li>
@endguest
</ul>
</div>
</div>
</nav>
<main class="py-4">
@yield('content')
</main>
</div>
</body>
</html>
第七步:编译运行
npm install
npm run build
这样就可以咯,开始使用 bootstrap
样式吧。
请登录后再评论