Laravel整合Bootstrap 4的完整方案

原文連接:www.pilishen.com/posts/integ…php

2018年1月23日更新: 若是你是想在laravel5.5上直接使用bootstrap 4,這應該是相對明智的,由於bootstrap 4最終版本已經發布了,那麼這裏有一個好消息,就是你不須要一步步執行下面的步驟了,你能夠經過安裝一個插件來快速使用上boostrap 4了,插件連接:laravelnews/laravel-twbs4,具體如何使用就不贅述了,按照插件文檔進行就行了。 若是你是在laravel5.5以前的版本整合bootstrap 4,那麼你仍是須要走一遍下面的流程:css

(一)安裝bootstrap及相應依賴

npm install bootstrap@4.0.0-beta popper.js --save-dev
複製代碼

bootstrap-sasspackage.json中刪除,而後再執行npm installnode

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

//替換掉以前bootstrap-sass的引入
//若是你是laravel 5.5及之後的版本,這裏的node_modules換成~符號
@import "node_modules/bootstrap/scss/bootstrap";
複製代碼

(三)編譯bootstrap的js文件

在這一步可能你會想直接複製一份你的bootstrap.min.js文件到public目錄,而後引用,但實際上這樣是不行的,由於bootstrap 4的js組件還依賴jqueryPopper.js,默認的bootstrap.min.js文件並無編譯進去。jquery

方法一 使用bootstrap.min.js來編譯

這個時候咱們須要在webpack.mix.js添加這麼幾行:webpack

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')
複製代碼

能夠看到,咱們經過mix.autoload()方法自動加載jqueryPopper.js,這樣在下面mix.js()方法編譯bootstrap.min.js文件的時候就把相應的依賴編譯進去了,最後咱們將編譯好的文件發送到了public/js/目錄下,而後在須要的地方調用便可。laravel

方法二 使用bootstrap.bundle.min.js來編譯

若是你到bootstrap的node_modules/bootstrap/dist/js/目錄下,會發現還有一個bootstrap.bundle.min.js文件,這個文件裏其實已經預先編譯了Popper.js進去,可是沒有jquery,因此剛纔的webpack.mix.js文件裏,咱們其實也能夠這樣來寫:git

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')
複製代碼

最終壓縮出來的文件都是同樣的,若是你是用npm run dev來編譯,那麼第二種方法壓縮出來的文件要小一點,但若是是到了生產環境,也即npm run production,那麼二者的大小都是同樣的。github

固然,第二種方法除了少寫一行,還有一個好處,就是在最開始的時候,就不須要npm install popper.js了,無可厚非了,少下載個組件而已。web

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

至此,你們就能夠按照bootstrap 4文檔在blade視圖中實際使用了,或者將已有的bootstrap 3的改爲4的,由於這是bootstrap的一次相對顛覆性的升級,因此沒法向下兼容,取決於你的項目大小,但通常而言將bootstrap 3的改爲4是須要費一陣子功夫的。npm

具體的很少談,這期間可能比較困惑的就是如何升級bootstrap 4的分頁樣式,方法也不少,這裏提供一個最簡單最快速的:

首先,找到你的resources/views/vendor/pagination目錄,這是laravel默認的分頁樣式視圖文件,若是沒有執行一下php artisan vendor:publish就有了

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

simple-default.blade.php
simple-bootstrap-4.blade.php
複製代碼

能夠看到laravel其實默認就已經爲咱們準備好了bootstrap 4的分頁模板文件,這個時候最簡單的就是改一下文件名字便可,以前的default.blade就是原來的bootstrap 3的,因此咱們能夠將其改爲bootstrap-3.blade.php,而後將bootstrap-4.blade改爲默認的default.blade,這樣laravel加載分頁的時候用的就是4的樣式了。

當然,你也能夠像laravel文檔上說的,在每一次渲染分頁的時候指定具體的分頁視圖文件,好比:

$paginator->links('vendor.pagination.bootstrap-4') 
複製代碼

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

相關文章
相關標籤/搜索