Gulp-静态网页模块化

前言:

  在做纯静态页面开发的过程中,难免会遇到一些的尴尬问题。比如:整套代码有50个页面,其中有40个页面顶部和底部模块相同。那么同样的两段代码我们复制了40遍(最难受的方法)。然后,这个问题就这样解决了。再然后,产品经理看了几遍后突然说顶部的某块需要改改设计。。。突然感觉好尴尬~~(心里是万马奔腾~),然后呢?然后就期待下一次的万马奔腾!!!

  虽然类似问题的解决方案很多,但是纯前端,不用各种框架的情况下,一种比iframe更靠谱的解决方案莫过于用像gulp这样的构建工具来完成。虽然在体验上也许会有一点小小的瑕疵(每次改完文件要预览,都需要先gulp一下),但是也并非是不能忍受。毕竟我们想要的仅仅是改一改某公共模块就能达到解决40个页面的目的。

举例的开发环境配置:

  Windows:在iis里搭建项目,方便在浏览器中预览;使用webstorm编辑器(习惯了,感觉比记事本还是要好用很多,还可以忽略某些文件夹)。

  MacOs:   在apache里搭建项目,方便在浏览器中预览;使用webstorm编辑器(习惯了,感觉比sublime用得更liu一点,还可以忽略某些文件夹)。

必备插件:

  gulp-file-include

技能描述:

  将需要模块化的html代码放到一个独立的html文件中。如:head.html

  然后在需要使用的地方使用:@@include('./head.html')

  文件路径自定义~~

  最后配置好gulp并执行

使用Demo:

  html:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=0"><title></title><link rel="stylesheet" href="css/comm.css?v=1.13"><link rel="stylesheet" href="css/template.css"><link rel="stylesheet" href="css/news.css">
</head>
<body>
@@include('../Layout/head.html')
<div class="news"></div>
@@include('../Layout/foot.html')
</body>

 

  gulp:

var gulp = require('gulp'), fileinclude = require('gulp-file-include'); gulp.task('prew', function () { gulp.src(['*.html','pages/*.html', '!node_modules/**/*.html']) .pipe(fileinclude({ prefix: '@@', basepath: '@file' })) .pipe(gulp.dest('prew')); gulp.src(['**/**.js', '!node_modules/**/*']).pipe(gulp.dest('prew/')); gulp.src(['**/**.css', '!node_modules/**/*']).pipe(gulp.dest('prew/')); gulp.src(['**/*.jpg', '**/*.jpge', '**/*.png', '**/*.gif', '**/*.bmp', '!prew/**/*', '!node_modules/**/*']).pipe(gulp.dest('prew/')); }); gulp.task('watch',function () { gulp.watch(['pages/*.html','css/*.css','img/**/*','!prew/**/*.html','!prew/**/*.css','!prew/img/**/*'], ['prew']); })

 

技能介绍:

  执行 gulp prew 会将文件复制到prew目录下,并生成对应的完整html文件。(注:此处将pages文件夹下的文件直接放到了prew根目录下,并非prew/pages。根据需要自改配置)

  执行 gulp watch后gulp会建立一个监听进程,在开发的时候每次修改文件后,gulp会自动执行prew,这样就不用每次都手动执行gulp prew然后再去刷浏览器。(这是一招实用技能)

 

最后:

  这套技能的要点不在于如何使用gulp,而是怎么去划分模块。每个模块除了有html代码以外,其实还可以有js、css代码或者引入js、css文件的代码,这样才能更模块一点。

 

转载于:https://www.cnblogs.com/aser1989/p/8206555.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466949.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PWM实现语音播放原理

采用PWM进行播放语音原理1.概述2.声音原理3.DAC产生声音的原理是什么4.PWM又是如何实现的DAC的5.PWM的频率与底噪的关系6.PWM音乐曲目解析7.后续1.概述大多数微控制器上播放音频都是采用DAC进行输出&#xff0c;因为微控制器上都不会去带CODEC编解码芯片&#xff0c;但是DAC不是…

在web.config里注册HttpModule

<add name"随便命名" type"HttpModule命名空间加类名,dll文件名" /> 转载于:https://www.cnblogs.com/tinsuki/archive/2007/09/10/888276.html

51单片机——SPI

单片机——SPI总线 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 UART、 I2C 和 SPI 是单片机系统中最常用的三种通信协议。 1、初步介绍 SPI 是一种高速的、全双工、同步通信总线&#xff0c;标准的 SPI 也仅仅使用 4 个引脚&#xff0c;常用于单片…

CTF 这个看起来有点简单

这个看起来有点简单分值&#xff1a;10 来源&#xff1a; 西普学院难度&#xff1a;易 很明显。过年过节不送礼&#xff0c;送礼就送这个 格式&#xff1a; 解题链接&#xff1a; http://ctf5.shiyanbar.com/8/index.php?id1 解法&#xff1a; 1.手工注入 id1 id1 and 11 id…

操作系统,你搞定了没?

#书籍赠送操作系统一直是比较难学的知识&#xff0c;要学好操作系统的相关内容&#xff0c;需要对硬件、软件、宏观、微观、有非常深刻的理解&#xff0c;而能找到一本讲解比较好的书籍也是非常难得的&#xff0c;恰好&#xff0c;最近有出版社的朋友推荐了这样的一本书籍&…

自学python前戏

为什么需要学python&#xff1f; 一直有这个打算&#xff0c;但总是没有下决心开始。 听说python语言结构简洁优美&#xff0c;功能性强大&#xff0c;可移植性高&#xff0c;各大网站都在用python开发。学习python的想法再一次涌上心头。未来10年到底哪种语言会独领风骚&#…

webcast(利用sharepoint Designer 定制 Office SharePoint Server 2007)学习笔记

讲 师:侯钟雷 微软特约讲师 北京易学育通科技发展有限公司时 间:90 分钟 下载地址:下载地址(需先注册,不过很快)讲座内容&#xff1a;SharePoint Designer是原Frontpage网页工具的演进版本&#xff0c;除了保持了原有强大的功能外&#xff0c;更增加了对SharePoint技术的…

C++ 的几个for 循环,范围for语句

我认为做嵌入式开发也需要学习C开发&#xff0c;可能我们学习的不只是一种编程语言&#xff0c;而是一种编程思想&#xff0c;C相对于C语言来说&#xff0c;会需要更多的想象力&#xff0c;原因就是C的特点太多了。不过&#xff0c;我们可以通过学习C的知识&#xff0c;来掌握面…

51单片机——多功能电子钟

单片机——多功能电子钟 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 实现的功能有&#xff1a;走 时、校时、闹钟、温度、遥控这几个功能。要想实现这几个功能&#xff0c;其中走时所需要的就是时 钟芯片&#xff0c;即 DS1302&#xff1b;时间需要…

用数学运算实现数据无损压缩的算法

用数学运算实现数据无损压缩的算法<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" />(An arithmetic On Lossless Data-Compress By Mathematical Operation)王春海1 魏玉冬2&#xff08;[1]河北经贸大学信息技术学院 2河北经贸…

dubbo的监控中心

监控中心实际上就是一个web工程。 是dubbo官方给我们提供的一个war包。 只需要部署在Tomcat中就可以了。 推荐把监控中心与注册中心部署在一台服务器上&#xff0c;这样可以不需要任何配置。 部署完成后直接启动Tomcat就可以使用。 注&#xff1a;tail -f logs/catalina.out即可…

​我敢说,这是最全的常用设计模式汇总

今天&#xff0c;想跟大家聊聊代码能力的提升。想起我刚入行那会&#xff0c;怀抱满腔激情&#xff0c;到处学热门框架&#xff0c;但实际上受限于公司体量和业务逻辑&#xff0c;其实往往用不上&#xff0c;时间久了&#xff0c;不用就忘记了&#xff0c;于是在日复一日的工作…

嵌入式高手之路

嵌入式高手之路 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 第一部分&#xff1a;LINUX平台搭建与环境熟悉 了解Linux系统&#xff1b;区分各种版本的Linux系统&#xff0c;以便于拓展 Linux视野。 1、Linux 简介&#xff1b; 2、Linux 系统的主要…

Meterpreter Guide

转载&#xff1a;http://wooyun.jozxing.cc/static/drops/tips-10146.html 0x01 入门篇(生成与接收) 功能介绍 msfpayload和msfencode已经被时代淘汰了现在都转为msfvenom了 msfvenom命令行选项如下&#xff1a;Options:-p, --payload payload> 指定需要使用的…

跟老肖聊天

今天跟一个创业的朋友老肖聊天&#xff0c;聊完之后有点沉重老肖是我的朋友&#xff0c;我讲的都是基于真实的内容&#xff0c;如果觉得我是吹牛或者过分如何&#xff0c;可以绕道&#xff0c;也请嘴下留情。老肖因为公司不景气&#xff0c;这两天出去面试&#xff0c;面试了三…

SSM中(Spring-SpringMVC-Mybatis)(一:概念)

一&#xff1a;Spring&#xff1a; 参照我的另一篇博客&#xff1a; http://www.cnblogs.com/GH0522/p/8127530.html 二:SpringMVC: 流程图&#xff1a; SpringMVC接口解释 DispatcherServlet&#xff1a; Spring提供的前端控制器&#xff0c;所有的请求都有经过它来统一分…

关于VISIO工具栏、菜单栏消失的解决办法

关于VISIO工具栏、菜单栏消失的解决办法1、打开注册表编辑器。2、VISIO 2000HKEY_CURRENT_USER\Software\Visio\Visio2000\Toolbars删除上述键值&#xff0c;再启动VISIO 2000就可以看到工具栏和菜单栏了。3、VISIO 2002HKEY_CURRENT_USER\Software\Microsoft\Visio\Toolbars删…

嵌入式软件书籍

嵌入式书籍推荐 宗旨&#xff1a;技术的学习是有限的&#xff0c;分享的精神是无限的。 Linux基础 1、《Linux与Unix Shell 编程指南》 C语言基础    1、《C Primer Plus&#xff0c;5th Edition》【美】Stephen Prata着    2、《The C Programming Language, 2nd Ed…

C语言函数库

sqrt() - C函数 C库函数 double sqrt(double x) 返回x的平方根。 声明 下面是函数sqrt()声明。 double sqrt(double x) 参数 x -- 这是浮点值。 返回值 这个函数返回x的平方根。 例子 下面的例子演示了如何使用sqrt()函数。 #include <stdio.h> #include <math.h>…

C++实现一个栈

我们先说下栈的知识&#xff0c;先看下我们之前写的文章栈&#xff0c;C语言实现如何自己实现一个栈堆和栈的区别&#xff08;转过无数次的文章&#xff09;这是一个栈这是我们把数据入栈的操作这是数据出栈的操作之前僚机号里面发了一个用C实现的栈文章&#xff0c;比较简单&a…