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 定时局部刷新(setInterval)
Nov 19 Javascript
javascript之querySelector和querySelectorAll使用说明
Oct 09 Javascript
js函数调用的方式
May 06 Javascript
JS 作用域与作用域链详解
Apr 07 Javascript
javascript实现手机震动API代码
Aug 05 Javascript
全面解析Bootstrap图片轮播效果
Dec 03 Javascript
微信小程序 PHP后端form表单提交实例详解
Jan 12 Javascript
微信小程序手势操作之单触摸点与多触摸点
Mar 10 Javascript
bootstrap multiselect 多选功能实现方法
Jun 05 Javascript
解决iView中时间控件选择的时间总是少一天的问题
Mar 15 Javascript
Vue CLI3 如何支持less的方法示例
Aug 29 Javascript
JavaScript之scrollTop、scrollHeight、offsetTop、offsetHeight等属性学习笔记
Jul 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
2009/06/29 PHP
php+jQuery.uploadify实现文件上传教程
2014/12/26 PHP
PHP中实现crontab代码分享
2015/03/26 PHP
php实现在线通讯录功能(附源码)
2016/05/13 PHP
ThinkPHP实现的rsa非对称加密类示例
2018/05/29 PHP
基于PHP实现微信小程序客服消息功能
2019/08/12 PHP
PHP实现提取多维数组指定一列的方法总结
2019/12/04 PHP
[原创]静态页面也可以实现预览 列表不同的显示方式
2006/10/14 Javascript
js原型继承的两种方法对比介绍
2014/03/30 Javascript
jquery实现简单实用的打分程序实例
2015/07/23 Javascript
js中flexible.js实现淘宝弹性布局方案
2020/06/23 Javascript
js检查是否关闭浏览器的方法
2016/08/02 Javascript
自己封装的一个原生JS拖动方法(推荐)
2016/11/22 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
2016/12/16 Javascript
jQuery实现扑克正反面翻牌效果
2017/03/10 Javascript
Node.js中 __dirname 的使用介绍
2017/06/19 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
2017/08/11 Javascript
全选复选框JavaScript编写小结(附代码)
2017/08/16 Javascript
详解使用webpack构建多页面应用
2017/12/21 Javascript
更改BootStrap popover的默认样式及popover简单用法
2018/09/13 Javascript
layui复选框的全选与取消实现方法
2019/09/02 Javascript
nodejs对mongodb数据库的增加修删该查实例代码
2020/01/05 NodeJs
python 数据加密代码
2008/12/24 Python
Python脚本实现网卡流量监控
2015/02/14 Python
Python编程中运用闭包时所需要注意的一些地方
2015/05/02 Python
Python简单操作sqlite3的方法示例
2017/03/22 Python
Python变量和字符串详解
2017/04/29 Python
python实时监控cpu小工具
2018/06/21 Python
树莓派与PC端在局域网内运用python实现即时通讯
2019/06/22 Python
Python使用itchat 功能分析微信好友性别和位置
2019/08/05 Python
解决pycharm中的run和debug失效无法点击运行
2020/06/09 Python
纯CSS3代码实现文字描边
2016/04/25 HTML / CSS
个人违纪检讨书
2014/09/15 职场文书
2014国庆节餐厅促销活动策划方案
2014/09/16 职场文书
世界遗产的导游词
2015/02/13 职场文书
死者家属慰问信
2015/03/24 职场文书