Gulp实现web服务器

阅读目录

  • 一:gulp实现web服务器配置:
  • 二:添加实时刷新(livereload)支持

回到顶部

一:gulp实现web服务器配置:

对于前端开发而言,需要在本地搭建一个服务器作为开发使用,虽然有时候也可以直接打开页面进行预览效果,但是有时候页面需要在服务器运行,以前的做法是下载一个php,直接安装下即可,或者使用nodeJS作为web服务器,今天我门可以来学习下使用gulp的一个插件 gulp-connect来配置作为本地服务器来使用;当然该插件也是居于nodeJS环境中的。

一:gulp实现web服务器配置:

初始化安装

首先,使用下面的命令来安装connect插件。

sudo  npm  install --save-dev gulp-connect

因此package.son内容代码变为如下:

{
  "name": "tongbanke",
  "version": "1.0.0",
  "description": "tobanke‘",
  "main": "main.js",
  "scripts": {
    "test": "test"
  },
  "repository": {
    "type": "git",
    "url": "gulp"
  },
  "keywords": [
    "gulp",
    "test"
  ],
  "author": "kongzhi",
  "license": "ISC",
  "devDependencies": {
    "gulp": "^3.6.2",
    "gulp-connect": "^2.0.5"
  }
}

gulpfile.js代码如下

var gulp = require(‘gulp‘),
    connect = require(‘gulp-connect‘);

gulp.task(‘webserver‘, function() {
    connect.server();
});

gulp.task(‘default‘, [‘webserver‘]);

如上是package.son代码和gulpfile.js代码;我们可以直接复制下来,新建package.son和gulp file.js两个文件,然后进入项目的目录下 npm install 即可把所有的依赖包加载出来。如下图:

这样就好了,然后我们在终端命令下运行gulp命令即可;如下所示:

然后我们在浏览器中打开 localhost:8080/index.html 就可以看到内容了,gulpfile.js文件是在网站的根目录下,服务器将一直运行,监听localhost:8080,如果我们想要停止服务器的话,可以回到中断命令下按ctrl+c键即可。这个demo我也放到了github上了,如下:

https://github.com/tugenhua0707/basic

我们可以直接使用git把它克隆下来放在本地目录下,然后进入该目录下,使用终端命令

npm install 即可,把所有的依赖包就能提取出来。再运行gulp命令后,在浏览器下运行

http://localhost:8080/即可看到index.html页面了。

回到顶部

二:添加实时刷新(livereload)支持

上面我们已经完成了使用 gulp-connect 实现服务器了,现在我们需要实现实时刷新,这样的话,每当我更改一个文件的时候,我就不需要重新运行命令,直接保存代码即可生效,因此我们现在需要做两件事情:

1. 让web服务器带实时刷新支持启动。

2. 告诉组建什么时候应该自动刷新。

第一步的实现很简单:只要给connect.server()方法传入一个参数即可:

{livereload: true}即可,如下图所示:

对于第二步,我们这里简单的实现以下使用gulpfile.js 来监听less文件,自动把less文件编译成css文件,并将其注入到浏览器中,为了编译LESS文件,我门需要使用到gulp-less 插件,我门可以运行如下命令:

sudo npm install --save-dev gulp-less 来安装gulp-less,并且在gulpfile.js文件中添加这个依赖项,现在我门可以看下 package.json代码变为如下:

// package.son
{
  "name": "tongbanke",
  "version": "1.0.0",
  "description": "tobanke‘",
  "main": "main.js",
  "scripts": {
    "test": "test"
  },
  "repository": {
    "type": "git",
    "url": "gulp"
  },
  "keywords": [
    "gulp",
    "test"
  ],
  "author": "kongzhi",
  "license": "ISC",
  "devDependencies": {
    "gulp": "^3.6.2",
    "gulp-connect": "^2.0.5",
    "gulp-less": "^1.2.3",
    "gulp-coffee": "^1.4.2",
    "gulp-watch": "^0.6.2"
  }
}

gulpfile.js代码变为如下:

// gulpfile.js

// 定义依赖项
var gulp = require(‘gulp‘),
    connect = require(‘gulp-connect‘),
    less = require(‘gulp-less‘);

// 定义 webserver 任务
gulp.task(‘webserver‘, function() {
    connect.server({
      livereload: true
    });
});

// 定义 less 任务
gulp.task(‘less‘, function() {
    gulp.src(‘styles/main.less‘)
        .pipe(less())
        .pipe(gulp.dest(‘styles‘))
        .pipe(connect.reload());
});

// 定义 watch 任务
gulp.task(‘watch‘, function() {
    gulp.watch(‘styles/*.less‘, [‘less‘]);
})

// 定义默认任务
gulp.task(‘default‘, [‘less‘, ‘webserver‘, ‘watch‘]);

我门再来看看我门现在的目录结构如下:

如上gulpfile.js文件,我门使用watch这个任务去监听LESS文件,每当该文件发生改变的时候,我门都会对less这个任务进行编译,然后把编译的文件写入到目标文件中,因此当我门回到终端命令下运行gulp命令后,每当我门的css文件有更改的话,都可以实时监听到,对于第二点监听到话,gulp有gulp-watch这个插件了,其实可以做的更好的;同样,为了大家有源代码的话,也把项目放入git里面去,大家也可以把它git 克隆下来,自行运行即可:如下:

https://github.com/tugenhua0707/livereload

想学习gulp的watch插件和压缩及合并代码的话,可以看如下文章即可:

http://www.cnblogs.com/tugenhua0707/p/4069769.html

时间: 2024-10-13 03:22:21

Gulp实现web服务器的相关文章

利用gulp搭建简单服务器,gulp标准版

var gulp = require('gulp'), autoprefixer = require('gulp-autoprefixer'), //自动添加css前缀 rename = require('gulp-rename'), //文件重命名 sass = require('gulp-sass'), //sass的编译 minifycss = require('gulp-minify-css'), //压缩css uglify = require('gulp-uglify'), //压缩

利用gulp搭建本地服务器,并能模拟ajax

工作中可能会用到的小工具,在此记录一下.可以实现的功能有: 本地http服务器 页面实时刷新 可以模拟ajax请求 第一步,新建package.json文件.用到了gulp.gulp-webserver.gulp-livereload package.json的内容如下: { "name": "localserver", "version": "1.0.0", "description": "&q

pfsense Web服务器负载平衡配置示例

在pfsense的网关和服务器中有两种类型的负载平衡功能.网关负载平衡可以通过多个WAN连接分发Internet绑定的流量.服务器负载平衡管理传入流量,因此它利用多个内部服务器进行负载分配和冗余,服务器负载平衡允许流量在多个内部服务器之间分配,它最常用于Web服务器和SMTP服务器.下面我们就以实例来介绍服务器负载平衡的设置. 下面介绍如何通过pfsense2.32配置Web服务器的负载平衡. 网络环境 服务器负载平衡示例网络环境 上图为示例网络环境.它由单个防火墙组成,使用其WAN IP地址池

VS2013 VS2015 VS2017调试出现无法启动iis express web服务器

最近老是遇到这个问题,天天如此,烦死人,网上答案繁多,但是都解决不了,也是由于各种环境不同导致的,这里把几种解决方法都记录下 一.其他项目都可以,就这么一个不行 因为其他项目都可以,就这么一个不行,所以基本就是配置问题,网上的办法都试了,我试了都没用,现在说说我的解决办法 用记事本或者其他什么文本编辑器,打开项目的.csproj文件,定位到<WebProjectProperties>,把关于IIS的配置<DevelopmentServerPort>.<DevelopmentS

linux学习笔记——搭建基于nginx的web服务器、多核配置、nginx配置参数

############ 认识nginx #############Nginx:(发音同 engine x)是一款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行.由俄罗斯的程序设计师Igor Sysoev所开发,最初供俄国大型的入口网站及搜寻引擎Rambler(俄文:Рамблер)使用.  其优点是轻量级(占有内存少),高并发(并发能力强),事实上nginx的并发能力确实在同类型的网页伺服器中表现较好.目前中国大陆使用ngi

使用TMG2010让多个web服务器共用一个公网地址

背景描述: 公司原有2个Web服务器托管在ISP中心,其中一个Web服务器上有3个网站,另外一个有2个网站.每1个Web服务器都有1个公网IP,由于负荷较轻,从节约成本出发,使用VMware将5台服务器整合在一台物理服务器上,此时就产生了一个问题,怎么让这5个分布在2台虚拟服务器上不同域名的网站共用公网地址的80端口? 操作步骤: 1.在VMware上虚拟出一台服务器,安装TMG2010,此时的网络拓扑结构为: 2.分别按照原来的结构在Web服务器上部署相关网站 3.在TMG上创建1个Web侦听

WEB服务器与应用服务器

Web服务器(Web Server) 通俗的讲,Web服务器的基本功能就是提供Web信息浏览服务.它只需支持HTTP协议.HTML文档格式及URL.与客户端的网络浏览器配合.因为Web服务器主 要支持的协议就是HTTP,所以通常情况下HTTP服务器和WEB服务器是相等的. 以这样的定义,IIS.Apache.Tomcat都可以属于Web服务器. [转载使用,请注明出处:http://blog.csdn.net/mahoking] Web服务器(Web Server)可以解析(handles)HT

EG:nginx反向代理两台web服务器,实现负载均衡 所有的web服务共享一台nfs的存储

step1: 三台web服务器环境配置:iptables -F; setenforce 0 关闭防火墙:关闭setlinux step2:三台web服务器 装软件 step3:主机修改配置文件:vim /usr/local/nginx/conf/nginx.conf 代理服务器修改文件:修改端口即可,端口可以自己设 ,不改默认的也行,但是得相应匹配 为测试需要,更改三台机器nginx的html文件: mv /usr/local/nginx/html/index.html /usr/local/n

Nginx配置文件(作为Web服务器)

Nginx作为Web服务器时,其配置文件参数如下: #user  nobody; #默认的运行用户 worker_processes  1; #工作进程数,建议和CPU核心数一致,默认为1 #error_log  logs/error.log; #error_log  logs/error.log  notice; #error_log  logs/error.log  info; #pid        logs/nginx.pid; events { worker_connections