Laravel 与 Bootstrap 4 混合

Posted

技术标签:

【中文标题】Laravel 与 Bootstrap 4 混合【英文标题】:Laravel Mix with Bootstrap 4 【发布时间】:2021-03-19 15:59:01 【问题描述】:

我一直在学习 Laravel (8) 并且喜欢使用 tailwindcss。也就是说,有些事情我仍然希望使用 Bootstrap。我无法找到有关如何在 laravel 8 中使用 laravel mix 设置引导程序的文档。更具体地说,在 resources/css/app.css 文件中,我们将以下内容用于顺风:

@tailwind base;
@tailwind components;
@tailwind utilities;

但我不确定引导程序会在这里做什么。

我注意到旧版本的 laravel 使用了 php artisan ui bootstrap,但据我所见,这在 Laravel 8 中不可用。

【问题讨论】:

【参考方案1】:

运行:npm install --save-dev bootstrap jquery popper.js

你的webpack.mix.js 应该是什么样子:

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
  .sass('resources/sass/app.scss', 'public/css');

你的app.scss 应该是什么样子:

@import '~bootstrap/scss/bootstrap';

你的app.js 应该是什么样子:

window.$ = window.jQuery = require('jquery');
window.Popper = require('popper.js');
require('bootstrap');

这就是您可以在.blade.php 文件中使用生成文件的方式:

<link rel="stylesheet" href=" mix('css/app.css') " type="text/css">
<script src=" mix('js/app.js') "></script>

如果要自定义 Bootstrap,请将 node_modules/bootstrap/scss/_variables.scss 复制到 resources/sass/_variables.scss,更改所需的变量并将 app.scss 更改为:

@import '~bootstrap/scss/functions';
@import 'variables';
@import '~bootstrap/scss/bootstrap'; 

您在 https://getbootstrap.com/docs/4.0/getting-started/webpack/ 上有一些有用的文档

Laracasts 也很有帮助。

【讨论】:

【参考方案2】:

似乎在 Laravel v8.24.0 中可用。

请注意,执行此过程会重新生成 webpack.mix.js。

步骤是:

安装 laravel ui:composer require laravel/ui 生成脚手架:php artisan ui bootstrap 可选地为身份验证生成相同的:php artisan ui bootstrap --auth 使 npm 安装所需的包:npm install 编译资产:npm run devnpm run production(用于开发或生产)

然后确保在刀片模板中包含以下内容:

<!-- Scripts -->
<script src=" asset('js/app.js') " defer></script>

<!-- Styles -->
<link href=" asset('css/app.css') " rel="stylesheet">

【讨论】:

谢谢兄弟,我只创建了一个项目,但在我没有使用引导程序安装 laravel ui 之前。使用 sass-loader v.10。使用 sass-loader 11 存在问题【参考方案3】:

使用此步骤

npm install bootstrap
npm install @popperjs/core
npm install sass@^1.32
npm install sass-loader

对于 Bootstrap Sass 文件,让我们在 /resources 中创建“scss”文件夹,然后在 /resources/scss/ 中创建一个新的 app.scss 文件。然后将以下行插入到 /ressources/scss/app.scss 文件中

@import "bootstrap";

对于 Bootstrap javascript,将以下行插入 /resources/js/app.js 文件:

import "bootstrap";

要使用 Laravel Mix 编译 Bootstrap JavaScript 和 Sass 文件,你需要编辑 /webpack.mix.js 文件如下:

const mix = require('laravel-mix');

mix.js('resources/js/app.js', 'public/js')
    .sass("resources/scss/app.scss", "public/css");

现在你可以运行你的命令了

npm run dev

现在我们有了包含 Bootstrap 的 /public/css/app.css 和 /public/js/app.js 文件,我们可以通过 Laravel 的资产助手 () 将它们包含在页面(模板 Blade)中以使用引导组件

在你的头上

<link rel="stylesheet" href=" asset('css/app.css') ">

在你的页脚

<script src=" asset('js/app.js') "></script>

现在我认为他会喜欢工作

【讨论】:

以上是关于Laravel 与 Bootstrap 4 混合的主要内容,如果未能解决你的问题,请参考以下文章

markdown Laravel混合了Twitter Bootstrap前端开发的示例配置

Bootstrap 4 - 如何使用媒体查询混合

Bootstrap 4中是不是有间距混合?

为 Laravel 启用 Bootstrap 4

带有 laravel 未知自定义元素的 bootstrap-vue.js:<b-alert> 错误

Laravel 刀片中的 bootstrap 4.x 模态