Bootstrap4 gulp 配置详解

 更新时间:2019年01月06日 10:10:43   作者:冉五五  
这篇文章主要介绍了Bootstrap4 gulp 配置详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近想写个项目,由于之前一直写后端,很少接触前端,所以这次来好好学一下前端。看了下Yii框架,它自带了Bootstrap框架,最开始想的是怎么快速写个页面,哪知道这个就像剥洋葱一样,就剥到了学习构建工具的阶段。

说个很沮丧的消息,等我把gulp这套工具调通了后,发现Github上居然有很多这样的模板了!废了我3天时间来搞这个东西。给个关键词:bootstrap 4 gulp boilerplate。额,以及还有一个网站,这是我读完bootstrap的文档后发现的:https://vanillajstoolkit.com/plugins/

在项目目录下的babelln/gulpfile.babel.js:

// 如果要编译babel可以启用
// const babel = require('gulp-babel');
// const concat = require('gulp-concat');
// const uglify = require('gulp-uglify');
const del = require("del");
const gulp = require("gulp");
const browserSync = require("browser-sync");
const sassCompile = require("gulp-sass");
const server = browserSync.create();

const paths = {
 scripts: {
  src: "src/scripts/*.js",
  dest: "dist/scripts"
 },
 css: {
  src: "src/scss/*.scss",
  dest: "dist/css"
 }
};

// 定义清理方法,会删除dist目录
const clean = () => del(["dist"]);

// 定义需要拷贝到dist目录的文件,一般APP最终使用的JS和CSS文件在这个目录中
const scriptFiles = [
 paths.scripts.src,
 "node_modules/bootstrap/dist/js/bootstrap.min.js",
 "node_modules/jquery/dist/jquery.min.js",
 "node_modules/popper.js/dist/umd/popper.min.js"
];

// 编译babel文件的时候使用
// function scripts() {
//  return gulp.src(paths.scripts.src, { sourcemaps: true })
//   .pipe(babel())
//   .pipe(uglify())
//   .pipe(concat('index.min.js'))
//   .pipe(gulp.dest(paths.scripts.dest));
// }

// 将源代码文件复制到目的地,中间可以加入其他处理程序
function scripts() {
 return gulp.src(scriptFiles).pipe(gulp.dest(paths.scripts.dest));
}

// 重启web服务
function reload(done) {
 server.reload();
 done();
}

// 编译sass文件,在dist/css目录产生结果文件
function sass() {
 return gulp
  .src(["node_modules/bootstrap/scss/bootstrap.scss", paths.css.src])
  .pipe(sassCompile())
  .pipe(gulp.dest(paths.css.dest));
}

// 服务初始化,以当前目录babelln/作为网站根目录
function serve(done) {
 server.init({
  server: {
   baseDir: "./"
  }
 });
 done();
}

// 定义需要监控的文件
const watches = [paths.scripts.src, "*.html", paths.css.src];

// 定义watch函数,它监控watches定义的文件,然后顺序执行这些方法
const watch = () => gulp.watch(watches, gulp.series(scripts, sass, reload));

// 再包装一层,整个流程就是清理,编译脚本,编译sass,初始化web服务,启动监控
const dev = gulp.series(clean, scripts, sass, serve, watch);

// 暴露默认方法给外部程序
exports.default = dev;

这个就是根据gulp官方的模板来捏的,最终还算是可以工作。

最后放个效果图^^

编译界面:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • js下利用userData实现客户端保存表单数据

    js下利用userData实现客户端保存表单数据

    对于多数网页制作的朋友,实现在客户端保存在网页表单上的信息,比较多的是采用Cookie技术来实现,这些功能例如:下拉列表框选择的选项,文本框输入的数据等。
    2010-06-06
  • es6学习笔记之Async函数基本教程

    es6学习笔记之Async函数基本教程

    这篇文章主要给大家介绍了关于es6中Async函数的基本教程,文中介绍的非常详细,对大家学习async函数具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧。
    2017-05-05
  • JavaScript中判断数据类型的方法总结

    JavaScript中判断数据类型的方法总结

    比如要判断一个变量是否是数组类型,PHP中有is_array()函数可以直接判断,然而js中我们需要...-- well,下面我们就来详细看一下JavaScript中判断数据类型的方法总结
    2016-05-05
  • js实现无限瀑布流实例方法

    js实现无限瀑布流实例方法

    在本篇文章里小编给大家整理的是关于js实现无限瀑布流实例方法以及相关代码,需要的朋友们学习下吧。
    2019-09-09
  • 通过JS 获取Mouse Position(鼠标坐标)的代码

    通过JS 获取Mouse Position(鼠标坐标)的代码

    最近我发现在webpage中获取空间的绝对坐标时,如果有滚动条就会有错,后来用无名发现的方法得以解决。
    2009-09-09
  • JavaScript代码执行的先后顺序问题

    JavaScript代码执行的先后顺序问题

    今天就给大家介绍一个特别基础的东西,javascript中函数的一点儿小知识之js代码的执行顺序问题,需要的朋友参考下吧
    2017-10-10
  • 利用js给datalist或select动态添加option选项的方法

    利用js给datalist或select动态添加option选项的方法

    下面小编就为大家分享一篇利用js给datalist或select动态添加option选项的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • BootstrapValidator不触发校验的实现代码

    BootstrapValidator不触发校验的实现代码

    BootstrapValidator是基于bootstrap3的jquery表单验证插件,是最适合bootstrap框架的表单验证插件,本文给大家介绍BootstrapValidator不触发校验的实现代码,感兴趣的朋友一起看看吧
    2016-09-09
  • 在图片上显示左右箭头类似翻页的代码

    在图片上显示左右箭头类似翻页的代码

    使用JS实现在图片上显示左右箭头的翻页代码.实例使用了javascript的onmousemove 事件,onmousemove 事件会在鼠标指针移动时发生,感兴趣的你可以参考下本文或许对你有所帮助
    2013-03-03
  • 有道JavaScript监听浏览器的问题

    有道JavaScript监听浏览器的问题

    相信大家在web项目中,经常会用到javascript的事件监听、事件冒泡这些东西。当然也包括window.opener,window.showModalDialog这些父子窗口的互操作。
    2010-06-06

最新评论