原文连接: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
npm install bootstrap@4.0.0-beta popper.js --save-dev
复制代码
将bootstrap-sass
从package.json
中删除,而后再执行npm install
node
app.scss
文件中引入新的bootstrap的sass文件//替换掉以前bootstrap-sass的引入
//若是你是laravel 5.5及之后的版本,这里的node_modules换成~符号
@import "node_modules/bootstrap/scss/bootstrap";
复制代码
在这一步可能你会想直接复制一份你的bootstrap.min.js
文件到public目录,而后引用,但实际上这样是不行的,由于bootstrap 4的js组件还依赖jquery
和Popper.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()
方法自动加载jquery
和Popper.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文档在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')
复制代码
但这样太麻烦,知道便可。