如果你是想在laravel5.5上直接使用bootstrap 4,這應該是相對明智的,因為bootstrap 4最終版本已經發布了,那么這里有一個好消息,就是你不需要一步步執行下面的步驟了,你可以通過安裝一個插件來快速使用上boostrap 4了,插件鏈接:laravelnews/laravel-twbs4,具體如何使用就不贅述了,按照插件文檔進行就好了。 如果你是在laravel5.5之前的版本整合bootstrap 4,那么你還是需要走一遍下面的流程:
(一)安裝bootstrap及相應依賴
npm install bootstrap@4.0.0-beta popper.js --save-dev
將 bootstrap-sass 從 package.json 中刪除,然后再執行 npm install
(二)在你的 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組件還依賴 jquery 和 Popper.js ,默認的 bootstrap.min.js 文件并沒有編譯進去。
方法一 使用 bootstrap.min.js 來編譯
這個時候我們需要在 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')可以看到,我們通過 mix.autoload() 方法自動加載 jquery 和 Popper.js ,這樣在下面 mix.js() 方法編譯 bootstrap.min.js 文件的時候就把相應的依賴編譯進去了,最后我們將編譯好的文件發送到了 public/js/ 目錄下,然后在需要的地方調用即可。
方法二 使用 bootstrap.bundle.min.js 來編譯
如果你到bootstrap的 node_modules/bootstrap/dist/js/ 目錄下,會發現還有一個 bootstrap.bundle.min.js 文件,這個文件里其實已經預先編譯了 Popper.js 進去,但是沒有 jquery ,所以剛才的 webpack.mix.js 文件里,我們其實也可以這樣來寫:
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 ,那么兩者的大小都是一樣的。
當然,第二種方法除了少寫一行,還有一個好處,就是在最開始的時候,就不需要 npm install popper.js 了,無可厚非了,少下載個組件而已。
(四)加載bootstrap 4的分頁視圖(pagination blade)
新聞熱點
疑難解答
圖片精選