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 相关文章推荐
javascript firefox兼容ie的dom方法脚本
May 18 Javascript
javascript 写类方式之九
Jul 05 Javascript
jQuery $.get 的妙用 访问本地文本文件
Jul 12 Javascript
js如何获取object类型里的键值
Feb 18 Javascript
JavaScript中的small()方法使用详解
Jun 08 Javascript
javascript实现无缝上下滚动特效
Dec 16 Javascript
vue中动态设置meta标签和title标签的方法
Jul 11 Javascript
三种Webpack打包方式(小结)
Sep 19 Javascript
js实现多个倒计时并行 js拼团倒计时
Feb 25 Javascript
微信小程序云开发之数据库操作
May 18 Javascript
Vue事件处理原理及过程详解
Mar 11 Javascript
vue+Element-ui实现分页效果
Nov 15 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
PHP在特殊字符前加斜杠的实现代码
2011/07/17 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
调试WordPress中定时任务的相关PHP脚本示例
2015/12/10 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
javascript 年月日联动实现核心代码
2009/12/21 Javascript
JQuery 选择和过滤方法代码总结
2010/11/19 Javascript
简短几句 通俗解释javascript的闭包
2011/01/17 Javascript
jquery调用asp.net 页面后台的实现代码
2011/04/27 Javascript
js检查页面上有无重复id的实现代码
2013/07/17 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
2015/09/04 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
解决Vue 浏览器后退无法触发beforeRouteLeave的问题
2017/12/24 Javascript
vue.js绑定事件监听器示例【基于v-on事件绑定】
2018/07/07 Javascript
VUE实现移动端列表筛选功能
2019/08/23 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
原生js中运算符及流程控制示例详解
2021/01/05 Javascript
[17:00]DOTA2 HEROS教学视频教你分分钟做大人-帕克
2014/06/10 DOTA
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
[45:16]完美世界DOTA2联赛循环赛 IO vs FTD BO2第二场 11.05
2020/11/06 DOTA
python中django框架通过正则搜索页面上email地址的方法
2015/03/21 Python
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python设计模式之MVC模式简单示例
2018/01/10 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
2018/05/07 Python
python使用协程实现并发操作的方法详解
2019/12/27 Python
python ffmpeg任意提取视频帧的方法
2020/02/21 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
zooplus德国:便宜地订购动物用品、动物饲料、动物食品
2020/05/06 全球购物
《在家里》教后反思
2014/03/01 职场文书
师德师风事迹材料
2014/12/20 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
Mysql 如何批量插入数据
2021/04/06 MySQL
GO语言异常处理分析 err接口及defer延迟
2022/04/14 Golang
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技