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 Discuz代码中的msn聊天小功能
May 25 Javascript
jquery+html5烂漫爱心表白动画代码分享
Aug 24 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(1)
Feb 20 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
Vuex之理解Store的用法
Apr 19 Javascript
js封装成插件_Canvas统计图插件编写实例
Sep 12 Javascript
Vue2.0子同级组件之间数据交互方法
Feb 28 Javascript
如何优雅地在vue中添加权限控制示例详解
Mar 07 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
May 12 jQuery
微信端调取相册和摄像头功能,实现图片上传,并上传到服务器
May 16 Javascript
JavaScript基于面向对象实现的无缝滚动轮播示例
Jan 17 Javascript
VUE : vue-cli中去掉路由中的井号#操作
Sep 04 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
dedecms中显示数字验证码的修改方法
2007/03/21 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php利用scws实现mysql全文搜索功能的方法
2014/12/25 PHP
php使用标签替换的方式生成静态页面
2015/05/21 PHP
PHP的PDO操作简单示例
2016/03/30 PHP
使用laravel的migrate创建数据表的方法
2019/09/30 PHP
javascript 读取图片文件的大小
2009/06/25 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
js单词形式的运算符
2014/05/06 Javascript
学习JavaScript事件流和事件处理程序
2016/01/25 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
JS+canvas动态绘制饼图的方法示例
2017/09/12 Javascript
一文让你彻底搞清楚javascript中的require、import与export
2017/09/24 Javascript
layui中的switch开关实现方法
2019/09/03 Javascript
在Python中Dataframe通过print输出多行时显示省略号的实例
2018/12/22 Python
python-numpy-指数分布实例详解
2019/12/07 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
python 实现批量图片识别并翻译
2020/11/02 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
纯css3制作煽动翅膀的蝴蝶的示例
2018/04/23 HTML / CSS
使用纯HTML5编写一款网页上的时钟的代码分享
2015/11/16 HTML / CSS
阿迪达斯丹麦官网:adidas丹麦
2016/10/01 全球购物
作风建设演讲稿
2014/05/23 职场文书
体育课外活动总结
2014/07/08 职场文书
群众路线党员自我评议范文2014
2014/09/24 职场文书
教师业务学习材料
2014/12/16 职场文书
公司介绍信范文
2015/01/31 职场文书
居住证明范文
2015/06/17 职场文书
学校运动会简讯
2015/07/20 职场文书
2015年信息化建设工作总结
2015/07/23 职场文书
《陶罐和铁罐》教学反思
2016/03/03 职场文书
如何用PHP实现分布算法之一致性哈希算法
2021/05/26 PHP
python使用BeautifulSoup 解析HTML
2022/04/24 Python
Java存储没有重复元素的数组
2022/04/29 Java/Android