gulp-webserver

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了gulp-webserver相关的知识,希望对你有一定的参考价值。

gulp-webserver是开启服务器,通常和gulp-livereload结合使用。而这两个结合使用效果,几乎类似browser-Sync。下面是gulp-webserver和gulp-livereload的一个小demo。

源代码下载(寄放在码云上)。

1. 所用的gulp-task的包及其他npm包

技术分享

 

2.所需的目录结构

技术分享

 

3.gulpfile.js 中设置源码目录和开发目录

var app = {
	srcPath: ‘src/‘,
	devPath: ‘build/‘
};

 

4.安装gulp-load-plugins,这个task是来避免重复require(引用模块),所以在gulpfile.js中看到如下代码:

var gulp = require(‘gulp‘),
	$ = require(‘gulp-load-plugins‘)();

引入gulp-load-plugins之后,使用其他模块方法,只需要在其方法前加上“$.”,以sass为例:

gulp.task(‘sass‘,function(){
	gulp.src(app.srcPath+‘styles/*.scss‘)
		.pipe($.sourcemaps.init())
		.pipe($.sass())
		//这里加了./ 表示生成的.map文件
		.pipe($.sourcemaps.write(‘./‘))
		.pipe(gulp.dest(app.devPath + ‘css‘))
		//单独使用livereload监听
		//.pipe($.livereload());
});

 

5.设置服务器端口,和浏览器同步

gulp.task(‘webserver‘, function() {
	gulp.src(app.devPath) // 服务器目录(./代表根目录)
	.pipe($.webserver({ // 运行gulp-webserver
		livereload: true, // 启用LiveReload,去掉f5刷新的痛点
		open: true, // 服务器启动时自动打开网页
		port: 3000
	}));
});

  

6. 整合默认一个任务

// 监听任务
gulp.task(‘watch‘,function(){
	gulp.watch(app.srcPath + ‘styles/*.scss‘, [‘sass‘]);
	gulp.watch(app.srcPath + ‘**/*.html‘, [‘html‘]) // 监听根目录下所有.html文件
});

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

  或者

gulp.task(‘default‘,[‘webserver‘],function(){
	gulp.watch(app.srcPath + ‘styles/*.scss‘, [‘sass‘]);
	gulp.watch(app.srcPath + ‘**/*.html‘, [‘html‘]) // 监听根目录下所有.html文件
});

 

发现两个问题: 

1.运行gulp,发现sass能监听,但检查语法错误能力不够全,如下:

技术分享

sass语法中变量声明在变量调用之前,而本demo并没因此终止监听或者出现错误。

 

2.另外如出现错误,命令端口会挂掉,可以用gulp处理错误的task,如:gulp-plumber

 

以上是关于gulp-webserver的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序代码片段

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器