Bootstrap4 gulp 配置详解


Posted in Javascript onJanuary 06, 2019

最近想写个项目,由于之前一直写后端,很少接触前端,所以这次来好好学一下前端。看了下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官方的模板来捏的,最终还算是可以工作。

最后放个效果图^^

编译界面:

Bootstrap4 gulp 配置详解

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

Javascript 相关文章推荐
jquery获取div宽度的实现思路与代码
Jan 13 Javascript
js 上下左右键控制焦点(示例代码)
Dec 14 Javascript
jquery插件orbit.js实现图片折叠轮换特效
Apr 14 Javascript
基于jQuery实现的旋转彩圈实例
Jun 26 Javascript
JavaScript实现自动弹出窗口并自动关闭窗口的方法
Aug 06 Javascript
jQuery树形下拉菜单特效代码分享
Aug 15 Javascript
jquery实现横向图片轮播特效代码分享
Nov 19 Javascript
原生js实现tab选项卡切换
Mar 23 Javascript
js构建二叉树进行数值数组的去重与优化详解
Mar 26 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
Oct 23 Javascript
jQuery实现简易QQ聊天框
Feb 10 jQuery
element-ui和vue表单(对话框)验证提示语(残留)清除操作
Sep 11 Javascript
jQuery实现获取当前鼠标位置并输出功能示例
Jan 05 #jQuery
node.js连接mysql与基本用法示例
Jan 05 #Javascript
Node.js Buffer模块功能及常用方法实例分析
Jan 05 #Javascript
Node.js net模块功能及事件监听用法分析
Jan 05 #Javascript
JS无限级导航菜单实现方法
Jan 05 #Javascript
JSON字符串操作移除空串更改key/value的介绍
Jan 05 #Javascript
JavaScript常见事件对象与操作实例总结
Jan 05 #Javascript
You might like
通过文字传递创建的图形按钮
2006/10/09 PHP
PHP 5.3.0 安装分析心得
2009/08/07 PHP
用php定义一个数组最简单的方法
2019/10/04 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
jquery实现漂浮在网页右侧的qq在线客服插件示例
2013/05/13 Javascript
jquery实现的随机多彩tag标签随机颜色和字号大小效果
2014/03/27 Javascript
优化RequireJS项目的相关技巧总结
2015/07/01 Javascript
关于Vue.js一些问题和思考学习笔记(1)
2016/12/02 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
JS仿Base.js实现的继承示例
2017/04/07 Javascript
angular $watch 一个变量的变化(实例讲解)
2017/08/02 Javascript
Angular实现下载安装包的功能代码分享
2017/09/05 Javascript
你应该知道的几类npm依赖包管理详解
2017/10/06 Javascript
javascript 中模板方法单例的实现方法
2017/10/17 Javascript
layui弹出框Tab选项卡的示例代码
2019/09/04 Javascript
优雅的使用javascript递归画一棵结构树示例代码
2019/09/22 Javascript
js实现二级联动简单实例
2020/01/11 Javascript
vue中改变滚动条样式的方法
2020/03/03 Javascript
js实现纯前端压缩图片
2020/11/16 Javascript
python创建只读属性对象的方法(ReadOnlyObject)
2013/02/10 Python
使用python在校内发人人网状态(人人网看状态)
2014/02/19 Python
python实现文件路径和url相互转换的方法
2015/07/06 Python
python 捕获 shell/bash 脚本的输出结果实例
2017/01/04 Python
Python编程之Re模块下的函数介绍
2017/10/28 Python
将TensorFlow的模型网络导出为单个文件的方法
2018/04/23 Python
Python socket模块ftp传输文件过程解析
2019/11/05 Python
Python读取实时数据流示例
2019/12/02 Python
使用keras实现非线性回归(两种加激活函数的方式)
2020/07/05 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
Carter’s官方旗舰店:美国受欢迎的婴童服装品牌
2018/01/21 全球购物
大学生职业生涯规划书的基本内容
2014/01/06 职场文书
建筑工地文明标语
2014/10/09 职场文书
2015年食堂工作总结报告
2015/04/23 职场文书
Java多条件判断场景中规则执行器的设计
2021/06/26 Java/Android
Python3的进程和线程你了解吗
2022/03/16 Python