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的一个OutlookBar类,动态创建导航条
Nov 19 Javascript
HTML5之lang属性与dir属性的详解
Jun 19 Javascript
jQuery弹出框代码封装DialogHelper
Jan 30 Javascript
JS实现固定在右下角可展开收缩DIV层的方法
Feb 13 Javascript
JavaScript基础教程——入门必看篇
May 20 Javascript
JS简单实现点击复制链接的方法
Aug 03 Javascript
原生js实现日期计算器功能
Feb 17 Javascript
在 Vue.js中优雅地使用全局事件的方法
Feb 01 Javascript
解决mui框架中switch开关通过js控制开或者关状态时小圆点不动的问题
Sep 03 Javascript
vue.js购物车添加商品组件的方法
Sep 17 Javascript
微信小程序后端无法保持session的原因及解决办法问题
Mar 20 Javascript
Openlayers实现地图的基本操作
Sep 28 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中将字符串转化为整数(int) intval() printf() 性能测试
2020/03/20 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
PHP实现的redis主从数据库状态检测功能示例
2017/07/20 PHP
用Laravel Sms实现laravel短信验证码的发送的实现
2018/11/29 PHP
laravel框架中控制器的创建和使用方法分析
2019/11/23 PHP
js判断浏览器的比较全的代码
2007/02/13 Javascript
jQuery 操作XML入门
2008/12/25 Javascript
jquery插件制作 提示框插件实现代码
2012/08/17 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
使用ajaxfileupload.js实现ajax上传文件php版
2014/06/26 Javascript
jQuery on()绑定动态元素出现的问题小结
2016/02/19 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
原生JS实现图片网格式渐显、渐隐效果
2017/06/05 Javascript
Vue应用部署到服务器的正确方式
2017/07/15 Javascript
JS实现方形抽奖效果
2018/08/27 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
浅析Vue 防抖与节流的使用
2019/11/14 Javascript
基于jQuery实现可编辑的表格
2019/12/11 jQuery
js实现圆形显示鼠标单击位置
2020/02/11 Javascript
微信小程序实现页面监听自定义组件的触发事件
2020/11/01 Javascript
[02:52]2017DOTA2国际邀请赛中国区预选赛晋级之路
2017/07/03 DOTA
举例简单讲解Python中的数据存储模块shelve的用法
2016/03/03 Python
分享一个简单的python读写文件脚本
2017/11/25 Python
django如何连接已存在数据的数据库
2018/08/14 Python
python 自定义对象的打印方法
2019/01/12 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
Python 实现自动获取种子磁力链接方式
2020/01/16 Python
CSS3中border-radius属性设定圆角的使用技巧
2016/05/10 HTML / CSS
法国在线宠物店:zooplus.fr
2018/02/23 全球购物
瀑布模型都有哪些优缺点
2014/06/23 面试题
如何用Java实现列出某个目录下的所有子目录
2015/07/20 面试题
家具厂厂长岗位职责
2014/01/01 职场文书
三八妇女节新闻稿
2015/07/17 职场文书
运动会广播稿200字
2015/08/19 职场文书
导游词之镇江西津古渡
2019/11/06 职场文书
MySQL实现配置主从复制项目实践
2022/03/31 MySQL