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实现点击链接弹出"图片另存为"而不是直接打开
Aug 15 Javascript
Easy.Ajax 部分源代码 支持文件上传功能, 兼容所有主流浏览器
Feb 24 Javascript
jQuery 1.7.2中getAll方法的疑惑分析
May 23 Javascript
location对象的属性和方法应用(解析URL)
Apr 12 Javascript
禁用页面部分JavaScript方法的具体实现
Jul 31 Javascript
动态加载js文件简单示例
Apr 21 Javascript
React Native 环境搭建的教程
Aug 19 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
Jul 16 Javascript
解决Angular2 router.navigate刷新页面的问题
Aug 31 Javascript
实例介绍JavaScript中多种组合继承
Jan 20 Javascript
javascript数组去重方法总结(推荐)
Mar 20 Javascript
react 不用插件实现数字滚动的效果示例
Apr 14 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
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
php通过文件头检测文件类型通用代码类(zip,rar等)
2010/10/19 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP移动文件指针ftell()、fseek()、rewind()函数总结
2014/11/18 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
关于PHP开发的9条建议
2015/07/27 PHP
利用PHP生成CSV文件简单示例
2016/12/21 PHP
pjblog中的UBBCode.js
2007/04/25 Javascript
JS获取父节点方法
2009/08/20 Javascript
JQuery表格内容过滤的实现方法
2013/07/05 Javascript
javascript实现根据3原色制作颜色选择器的方法
2015/07/17 Javascript
JQuery入门基础小实例(1)
2015/09/17 Javascript
JS中创建函数的三种方式及区别
2016/03/13 Javascript
JavaScript入门系列之知识点总结
2016/03/24 Javascript
React Native中Navigator的使用方法示例
2017/10/13 Javascript
JavaScript实现图片懒加载的方法分析
2018/07/05 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
JavaScript this使用方法图解
2020/02/04 Javascript
node.js使用 http-proxy 创建代理服务器操作示例
2020/02/10 Javascript
JavaScript实现打字游戏
2021/02/19 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
使用python编写简单的小程序编译成exe跑在win10上
2018/01/15 Python
Python使用OpenCV进行标定
2018/05/08 Python
python使用RNN实现文本分类
2018/05/24 Python
根据DataFrame某一列的值来选择具体的某一行方法
2018/07/03 Python
python 视频逐帧保存为图片的完整实例
2019/12/10 Python
python实现简单俄罗斯方块
2020/03/13 Python
Anaconda+spyder+pycharm的pytorch配置详解(GPU)
2020/10/18 Python
CSS3 animation ? steps 函数详解
2019/08/30 HTML / CSS
html5+CSS3+JS实现七夕言情功能代码
2017/08/28 HTML / CSS
HTML5实现获取地理位置信息并定位功能
2015/04/25 HTML / CSS
服务之星获奖感言
2014/01/21 职场文书
社区端午节活动方案
2014/01/28 职场文书
余世维讲座观后感
2015/06/11 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
JavaScript数组reduce()方法的语法与实例解析
2021/07/07 Javascript