gulp配置实现修改js、css、html自动刷新

写在前面:

本配置支持es6、less

1.首先

给出初始的目录结构

给出执行gulp后的目录结构

给出执行gulp --p后的目录结构

2.package.json里是一个写入。文件描述了npm包的相关配置信息(作者、简介、包依赖等)和所需模块。

{
  "name": "gruntTest",
  "version": "1.0.0",
  "description": "",
  "main": "Gulpfile.js"
}

3.Gulpfile.js添加要执行的任务

var gulp = require(‘gulp‘);
var uglify = require(‘gulp-uglify‘);  //js压缩
var concat = require(‘gulp-concat‘);  //合并文件
var minifyCSS = require(‘gulp-minify-css‘);  //css压缩
var less = require(‘gulp-less‘);  //less
var changedInPlace = require(‘gulp-changed-in-place‘);//不管修改哪个文件,gulp会简化DEST里的html文件
var minifyHTML = require(‘gulp-htmlmin‘);  //简化html
var browserSync = require(‘browser-sync‘).create(); //自动刷新
var babel = require(‘gulp-babel‘); //支持es6
var argv = require(‘yargs‘).argv; //支持不同环境
var sequence = require(‘gulp-sequence‘); //按照顺序执行
var watch = require(‘watch‘);  //监听
var clean = require(‘gulp-clean‘);  //监听
//npm install --save-dev gulp-babel babel-preset-es2015
var DEST = ‘dest/‘;
var HTML_PATH = ‘./src/*.html‘;

gulp.task(‘minify-js‘, function(){
	if(argv.p){
		gulp.src(‘src/source/*.js‘)
			.pipe(babel({
				presets: [‘es2015‘]
			}))
			.pipe(uglify())
			.pipe(concat(‘gruntTest.min.js‘))
			.pipe(gulp.dest(DEST+‘js‘))

	}else{
		gulp.src(‘src/source/*.js‘)
			.pipe(babel({
				presets: [‘es2015‘]
			}))
			.pipe(uglify())
			.pipe(concat(‘gruntTest.min.js‘))
			.pipe(gulp.dest(‘src/js‘))
	}
});
gulp.task(‘minify-css‘, function(){
	if(argv.p){
		gulp.src(‘src/less/*.less‘)  //或者用[‘src/less/p1.less‘,‘src/less/p2.less‘]
			.pipe(less())
			.pipe(minifyCSS())
			.pipe(concat(‘style.min.css‘))
			.pipe(gulp.dest(DEST+‘css‘))
			.pipe(browserSync.stream());
		}else{
			gulp.src(‘src/less/*.less‘)  //或者用[‘src/less/p1.less‘,‘src/less/p2.less‘]
				.pipe(less())
				.pipe(minifyCSS())
				.pipe(concat(‘style.min.css‘))
				.pipe(gulp.dest(‘src/css‘))
				.pipe(browserSync.stream());
		}
});
gulp.task(‘minify-html‘, function(){
	gulp.src(HTML_PATH)
		.pipe(changedInPlace({firstPass: true}))
		.pipe(minifyHTML({collapseWhitespace: true}))
		.pipe(gulp.dest(DEST))
		.pipe(browserSync.stream());
});
gulp.task(‘clean‘, function () {
  	gulp.src([‘./src/css/*.css‘,‘./src/js/*.js‘], {read: false})
    	.pipe(clean());
});
var files = [
	‘./src/css/*.css‘,
	‘./src/js/*.js‘
];
gulp.task(‘browser-sync‘, function(){
	browserSync.init(files,{
		server: {
			baseDir: ‘./‘
		},
		port: 9999
	});
});
gulp.task(‘watch‘, function() {
	gulp.watch(‘./src/source/*.js‘,[‘minify-js‘]);
  	gulp.watch(‘./src/less/*.less‘,[‘minify-css‘]);
});
if(argv.p){
	//product
	gulp.task(‘default‘, sequence(‘minify-js‘,‘minify-css‘,‘minify-html‘,‘browser-sync‘));
}else{
	//develop
	gulp.task(‘default‘, sequence(‘clean‘,‘minify-js‘,‘minify-css‘,‘watch‘,‘browser-sync‘));
}

4.扩展

(1)上面一堆require看着好烦人,也很庞大。此处可以引入“gulp-load-plugins”插件

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

plugins.uglify();即可执行相应任务

(2)若某个文件夹下好多文件,那么watch监听时需要一一列举,可以目录写成json格式(例如src.source.*.js)。通过引入“fs”插件,用fs.freaddirSync()方法去读路径。循环即可,此处的实现纯属写js代码。

  

  

时间: 2024-11-08 22:18:11

gulp配置实现修改js、css、html自动刷新的相关文章

修改文件后浏览器自动刷新解决方案

现有编程工具的自动刷新解决方案 其实有很多工具可以做到文件一改变,浏览器自动刷新,其实这样体验也是最好的,可是由于一些原因,这些工具并不能解决所有工作场景的需求. 由于这不是本文的主要内容,只列出一些可以实现自动刷新的工具,没有进行详细展开,大家可以自行去研究下. 在Sublime下有一个插件叫做LiveStyle可以实现修改CSS后自动刷新,但是每一个CSS文件都要手动配置,不够智能.需要安装Chrome插件:Emmet LiveStyle. JetBrains公司的IDEA.WebStorm

maven 配置合并压缩JS+CSS

1 <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 2 <modelV

Browsersync结合gulp和nodemon实现express全栈自动刷新

Browsersync能让浏览器实时.快速响应你的文件更改(html.js.css.sass.less等)并自动刷新页面.更重要的是 Browsersync可以同时在PC.平板.手机等设备下进项调试.你的任何一次代码保存,以上的设备都会同时显示你的改动". Browsersync可以单独使用,也可以集成到gulp和grunt这样的构建工具中使用,在node.js项目中还能结合gulp-nodemon实现全栈的自动刷新,而在移动端设备上同步调试的功能对移动web开发显然是很有帮助的. 相关网站查看

gulp+browserSync+nodemon 实现express 全端自动刷新的实践

学习过程宝宝心里苦,不能怨政府.. 兴趣所致,一直放不下nodejs的学习,时隔多日,又把express捡起来打算重新再学学,一直没什么太大的长进,和实际的项目经验.真的醉了,太懒了. 今天在重新研究supervisor的时候,突然觉得这东西只有在服务端文件修改时才会触发刷新,前端样式文件模板等等刷新时不会, 能实现前端修改也自动刷新不?想想平时自己用gulp 搭虚拟服务器,用browser自动刷新,于是打算试试. gulp+browserSync 算是原来就有的,现在应该把目标分几步来实现,

nginx设置反向代理后,页面上的js css文件无法加载

问题现象: nginx配置反向代理后,网页可以正常访问,但是页面上的js css文件无法加载,页面样式乱了. (1)nginx配置如下: (2)域名访问:js css文件无法加载: (3)IP访问:js css文件可以正常加载: 解决方法: nginx配置文件中,增加如下配置: location ~ .*\.(js|css)$ { proxy_pass http://127.0.0.1:8866; } 原因分析: 反向代理的路径下找不到文件,需要单独指定js css文件的访问路径.

gulp最佳实践(包含js,css,html预编译,合并,压缩,浏览器自动刷新)

gulp是基于流的自动化构建工具官方网址:http://www.gulpjs.com.cn/ 一.安装需要的模块 1.新建package.json,输入下面的内容 { "name": "autopractice", "version": "1.0.0", "description": "", "main": "index.js", "sc

配置eclipse编写html/js/css/jsp/java时自动提示

配置eclipse编写html/js/css/jsp/java时自动提示步骤: 1.打开eclipse→Windows→Preferences→Java→Editor→Content Assist 修改Auto Activation triggers for java的值为:zjava   点击apply按钮 如图: 2.继续打开JavaScript→Editor→Content Assist 修改Auto Activation triggers for JavaScript的值为:zjs  

关于webStrom-11.1配置less且自动生成.css和自动压缩为.min.css/.min.js

网上看过很多配置思路,自己总结了以下, 就把我个人配置的顺序以及材料分享下,webstrom以下简称WB 1.配置less需要安装nodejs,自行安装.因为要用到npm.我是直接把npm解压到C盘根目录的,先下载解压好待用 npm解压包百度云下载地址:http://pan.baidu.com/s/1bpdnmGZ (yuicompressor-2.4.2.jar 这个是WB配置让CSS或者JS自动生成.mincss/.minjs的压缩工具,不是配置LESS的工具哦, 使用很简单不用解压,比我直

配置Eclipse编写HTML/JS/CSS/JSP页面的自动提示

我们平时用eclipse开发jsp页面时智能提示效果不太理想,今天用了两个小时发现了eclipse也可以像Visual Studio 2008那样完全智能提示HTML/JS/CSS代码,使用eclipse自带的插件,无需另外安装插件,具体步骤如下 1.打开eclipse→Windows→Preferences→Java→Editor→Content Assist 修改Auto Activation triggers for java的值为:zjava   点击apply按钮 如图: 2.继续打开