分享Laravel整合Bootstrap4的完整方案

下面由laravel教程欄目給大家介紹laravel整合bootstrap 4的完整方案 ,希望對(duì)需要的朋友有所幫助!

2018年1月23日更新: 如果你是想在laravel5.5上直接使用bootstrap 4,這應(yīng)該是相對(duì)明智的,因?yàn)閎ootstrap 4最終版本已經(jīng)發(fā)布了,那么這里有一個(gè)好消息,就是你不需要一步步執(zhí)行下面的步驟了,你可以通過(guò)安裝一個(gè)插件來(lái)快速使用上boostrap 4了,插件鏈接:laravelnews/laravel-twbs4,具體如何使用就不贅述了,按照插件文檔進(jìn)行就好了。 如果你是在laravel5.5之前的版本整合bootstrap 4,那么你還是需要走一遍下面的流程:

(一)安裝bootstrap及相應(yīng)依賴

npm?install?bootstrap@4.0.0-beta?popper.js?--save-dev

將bootstrap-sass從package.json中刪除,然后再執(zhí)行npm install

(二)在你的app.scss文件中引入新的bootstrap的sass文件

//替換掉之前bootstrap-sass的引入 //如果你是laravel?5.5及以后的版本,這里的node_modules換成~符號(hào) @import?"node_modules/bootstrap/scss/bootstrap";

(三)編譯bootstrap的js文件

在這一步可能你會(huì)想直接復(fù)制一份你的bootstrap.min.js文件到public目錄,然后引用,但實(shí)際上這樣是不行的,因?yàn)閎ootstrap 4的js組件還依賴jquery和Popper.js,默認(rèn)的bootstrap.min.js文件并沒(méi)有編譯進(jìn)去。

方法一 使用bootstrap.min.js來(lái)編譯

這個(gè)時(shí)候我們需要在webpack.mix.js添加這么幾行:

mix.autoload({ ????jquery:?['$',?'window.jQuery',"jQuery","window.$","jquery","window.jquery"],???? ????'popper.js/dist/umd/popper.js':?['Popper'] }); mix.js([???????? 'node_modules/bootstrap/dist/js/bootstrap.min.js' ????????],'public/js/bootstrap.min.js')

可以看到,我們通過(guò)mix.autoload()方法自動(dòng)加載jquery和Popper.js,這樣在下面mix.js()方法編譯bootstrap.min.js文件的時(shí)候就把相應(yīng)的依賴編譯進(jìn)去了,最后我們將編譯好的文件發(fā)送到了public/js/目錄下,然后在需要的地方調(diào)用即可。

方法二 使用bootstrap.bundle.min.js來(lái)編譯

如果你到bootstrap的node_modules/bootstrap/dist/js/目錄下,會(huì)發(fā)現(xiàn)還有一個(gè)bootstrap.bundle.min.js文件,這個(gè)文件里其實(shí)已經(jīng)預(yù)先編譯了Popper.js進(jìn)去,但是沒(méi)有jquery,所以剛才的webpack.mix.js文件里,我們其實(shí)也可以這樣來(lái)寫:

mix.autoload({ ????jquery:?['$',?'window.jQuery',"jQuery","window.$","jquery","window.jquery"] }); mix.js([????????'node_modules/bootstrap/dist/js/bootstrap.bundle.min.js' ????????],'public/js/bootstrap.min.js')

最終壓縮出來(lái)的文件都是一樣的,如果你是用npm run dev來(lái)編譯,那么第二種方法壓縮出來(lái)的文件要小一點(diǎn),但如果是到了生產(chǎn)環(huán)境,也即npm run production,那么兩者的大小都是一樣的。

當(dāng)然,第二種方法除了少寫一行,還有一個(gè)好處,就是在最開(kāi)始的時(shí)候,就不需要npm install popper.js了,無(wú)可厚非了,少下載個(gè)組件而已。

(四)加載bootstrap 4的分頁(yè)視圖(pagination blade)

至此,大家就可以按照bootstrap 4文檔在blade視圖中實(shí)際使用了,或者將已有的bootstrap 3的改成4的,因?yàn)檫@是bootstrap的一次相對(duì)顛覆性的升級(jí),所以無(wú)法向下兼容,取決于你的項(xiàng)目大小,但一般而言將bootstrap 3的改成4是需要費(fèi)一陣子功夫的。

具體的不多談,這期間可能比較困惑的就是如何升級(jí)bootstrap 4的分頁(yè)樣式,方法也很多,這里提供一個(gè)最簡(jiǎn)單最快速的:

首先,找到你的resources/views/vendor/pagination目錄,這是laravel默認(rèn)的分頁(yè)樣式視圖文件,如果沒(méi)有執(zhí)行一下php artisan vendor:publish就有了

default.blade.php bootstrap-4.blade.php  simple-default.blade.php simple-bootstrap-4.blade.php

可以看到laravel其實(shí)默認(rèn)就已經(jīng)為我們準(zhǔn)備好了bootstrap 4的分頁(yè)模板文件,這個(gè)時(shí)候最簡(jiǎn)單的就是改一下文件名字即可,之前的default.blade就是原來(lái)的bootstrap 3的,所以我們可以將其改成bootstrap-3.blade.php,然后將bootstrap-4.blade改成默認(rèn)的default.blade,這樣laravel加載分頁(yè)的時(shí)候用的就是4的樣式了。

固然,你也可以像laravel文檔上說(shuō)的,在每一次渲染分頁(yè)的時(shí)候指定具體的分頁(yè)視圖文件,比如:

$paginator->links('vendor.pagination.bootstrap-4')

但這樣太麻煩,知道即可。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊7 分享