zoukankan      html  css  js  c++  java
  • gulp构建工作流

    gulp构建工作流以及gulpfile.js文件

    ### 步骤:
    1. 命令行创建npm的配置文件
    	a. npm init(这时候生成一个package.json的文件)
    2. 添加一个gulp的依赖
    	npm install gulp --save-dev 
    3. 在项目根目录下添加一个gulpfile.js文件,这个是gulp的主文件,这个文件名是固定的
    
    4. 在gulpfile中抽象我们需要做的任务
    	需要做的任务有:1. LESS编译 压缩 合并
    					2. JS合并 压缩 混淆
    					3. img复制
    					4. html压缩
    	这个时候要在src中写源文件,写完之后要将这些源文件发布到dist目录中
    5. 添加less的编译需要插件,所以要在根目录下安装
    	npm install gulp-less gulp-concat gulp-uglify gulp-cssnano gulp-htmlmin --save-dev
    	(其中包括的功能有less编译,压缩合并,js合并压缩混淆,img复制)
    	包下载好之后要将包导入
    6.  启用自动化同步服务器的功能
    	npm install browser-sync --save-dev 
    7.完整的gulpfile.js文件代码
    
    		'use strict';
    		/**
    		 * 1. LESS编译 压缩 合并
    		 * 2. JS合并 压缩 混淆
    		 * 3. img复制
    		 * 4. html压缩
    		 */
    		
    		// 在gulpfile中先载入gulp包,因为这个包提供了一些API
    		var gulp = require('gulp');
    		var less = require('gulp-less');
    		var cssnano = require('gulp-cssnano');
    		
    		// 1. LESS编译 压缩 --合并没有必要,一般预处理CSS都可以导包
    		gulp.task('style', function() {
    		  // 这里是在执行style任务时自动执行的
    		  gulp.src(['src/styles/*.less', '!src/styles/_*.less'])
    		    .pipe(less())
    		    .pipe(cssnano())
    		    .pipe(gulp.dest('dist/styles')) //这里不用写styles文件夹,会自动创建
    		    .pipe(browserSync.reload({
    		      stream: true
    		    }));
    		});
    		
    		var concat = require('gulp-concat');
    		var uglify = require('gulp-uglify');
    		
    		// 2. JS合并 压缩混淆
    		gulp.task('script', function() {
    		  gulp.src('src/scripts/*.js')
    		    .pipe(concat('all.js'))
    		    .pipe(uglify())
    		    .pipe(gulp.dest('dist/scripts'))
    		    .pipe(browserSync.reload({
    		      stream: true
    		    }));
    		});
    		
    		// 3. 图片复制
    		gulp.task('image', function() {
    		  gulp.src('src/images/*.*')
    		    .pipe(gulp.dest('dist/images'))
    		    .pipe(browserSync.reload({
    		      stream: true
    		    }));
    		});
    		
    		var htmlmin = require('gulp-htmlmin');
    		// 4. HTML
    		gulp.task('html', function() {
    		  gulp.src('src/*.html')
    		    .pipe(htmlmin({
    		      collapseWhitespace: true,
    		      removeComments: true
    		    }))
    		    .pipe(gulp.dest('dist'))
    		    .pipe(browserSync.reload({
    		      stream: true
    		    }));
    		});
    		
    		var browserSync = require('browser-sync');
    		gulp.task('serve', function() {
    		  browserSync({
    		    server: {
    		      baseDir: ['dist']
    		    },
    		  }, function(err, bs) {
    		    console.log(bs.options.getIn(["urls", "local"]));
    		  });
    		
    		  gulp.watch('src/styles/*.less',['style']);
    		  gulp.watch('src/scripts/*.js',['script']);
    		  gulp.watch('src/images/*.*',['image']);
    		  gulp.watch('src/*.html',['html']);
    		});
  • 相关阅读:
    【SpringMVC】SpringMVC系列15之SpringMVC最佳实践
    【SpringMVC】SpringMVC系列14之SpringMVC国际化
    could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.5 or one of(maven报错)
    ubuntu14安装tensorflow并测试
    HTMLajax跨域向服务器写入数据
    eclipse的最新版本luna的中建立svn和maven
    关于equals与hashcode的重写
    会计中的冲销和红票
    dubbo在项目中的应用
    dubbo介绍以及创建
  • 原文地址:https://www.cnblogs.com/ccvtt/p/8554975.html
Copyright © 2011-2022 走看看