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设置金额样式转换保留两位小数示例代码
Dec 04 Javascript
Javascript中使用parseInt函数需要注意的问题
Apr 02 Javascript
理解js回收机制通俗易懂版
Feb 29 Javascript
vue-router 学习快速入门
Mar 01 Javascript
PHP 实现一种多文件上传的方法
Sep 20 Javascript
基于vue cli重构多页面脚手架过程详解
Jan 23 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
Aug 13 Javascript
使用Angular-CLI构建NPM包的方法
Sep 07 Javascript
微信小程序云开发实现增删改查功能
May 17 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
vue 实现强制类型转换 数字类型转为字符串
Nov 07 Javascript
JavaScript实现随机点名器
Mar 25 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
是否存在第一台收音机的说法
2021/03/01 无线电
php simplexmlElement操作xml的命名空间实现代码
2011/01/04 PHP
php 无法加载mysql的module的时候的配置的解决方案引发的思考
2012/01/27 PHP
php实现aes加密类分享
2014/02/16 PHP
支持中文、字母、数字的PHP验证码
2015/05/04 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
PHP用户注册邮件激活账户的实现代码
2017/05/31 PHP
原生javascript获取元素样式属性值的方法
2010/12/25 Javascript
JavaScript闭包 懂不懂由你反正我是懂了
2011/10/21 Javascript
js Map List 遍历使用示例
2013/07/10 Javascript
jquery ajax,ashx,json的用法总结
2014/02/12 Javascript
给angular加上动画效遇到的问题总结
2016/02/17 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
Node.js制作简单聊天室
2017/01/12 Javascript
AngularJS 文件上传控件 ng-file-upload详解
2017/01/13 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
微信、QQ、微博、Safari中使用js唤起App
2018/01/24 Javascript
在vue项目创建的后初始化首次使用stylus安装方法分享
2018/01/25 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
JS实现星星海特效
2019/12/24 Javascript
[02:23]2014DOTA2国际邀请赛中国战队回顾
2014/08/01 DOTA
[02:12]2019完美世界全国高校联赛(春季赛)报名开启
2019/03/01 DOTA
十分钟利用Python制作属于你自己的个性logo
2018/05/07 Python
python 列表推导式使用详解
2019/08/29 Python
Flask框架路由和视图用法实例分析
2019/11/07 Python
pytorch中图像的数据格式实例
2020/02/11 Python
Python 读取位于包中的数据文件
2020/08/07 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
卡西欧G-SHOCK英国官网: 防水防震手表
2018/01/08 全球购物
建筑学专业自荐书
2014/07/09 职场文书
2014年卫生院工作总结
2014/12/03 职场文书
2016新年年会主持词
2015/07/06 职场文书
年中了,该如何写好个人述职报告?
2019/07/02 职场文书
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python
详解Golang如何实现支持随机删除元素的堆
2022/09/23 Python