由于laravel中有一个elixir很强大,可是不方便理解前端的工具细节,因此单独学习下相关工具。先从编译和安装bootstrap V4开始。css
下文主要包含了对 bootstrap的scss和js的编译打包。前端
执行下面的命令,直接安装bootstrap v4的source包node
npm install bootstrap@4.0.0-alpha.5
npm install gulp-sass npm install gulp-webpack npm install gulp-babel npm install babel-preset-es2015 npm install path
注意有些版本的bootstrap/scss
目录下全都是_xxx.scss
文件,这样sass
是没法进行编译的(困扰了我很久)。咱们要新建一个bootstrap.scss文件,而且将内容修改成以下webpack
import 'bootstrap';
可是v4中已经存在bootstrap.scss
文件,而且import
了全部的子文件,咱们就直接用就能够了。laravel
bootstrap中,dist目录下已经生成了能够直接使用,可是若是咱们要修改而后打包的话,就要用到源码编译。
以前没有系统学过node,可是src
目录下的js须要进行编译才能运行。就须要用到babel
命令。babel
命令将每一个js文件进行编译后,放到dist2文件夹中。而后咱们使用webpack
命令进行模块化打包。web
var gulp = require('gulp'); var sass = require('gulp-sass'); var path = require('path'); var webpack = require('gulp-webpack'); var babel = require('gulp-babel'); // 设定路径 var node_path = path.resolve(__dirname, './','node_modules'); // 创建任务 gulp.task('bootstrap',function() { // 生成scss gulp.src(node_path+'/bootstrap/scss/bootstrap.scss') .pipe(sass()) .pipe(gulp.dest('public/css/')); // 将全部的src目录下的js进行编译,用babel,放到一个dist目录下 gulp.src(node_path+'/bootstrap/js/src/*.js') .pipe(babel({ presets:['es2015'] })) .pipe(gulp.dest(node_path+'/bootstrap/js/dist2')); }); // 创建新的任务,依赖bootstrap任务 gulp.task('webpack',['bootstrap'],function() { // 将全部的dist2下的文件进行模块化打包放到bootstrap.js文件 gulp.src(node_path+'/bootstrap/js/dist2/*.js') .pipe(webpack({ output:{ filename:'bootstrap.js' } })) .pipe(gulp.dest('public/js/')); }); gulp.task('default',['bootstrap','webpack']);