Skip to content

初探gulp[学习笔记1] #9

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
stuxt opened this issue Feb 16, 2016 · 4 comments
Open

初探gulp[学习笔记1] #9

stuxt opened this issue Feb 16, 2016 · 4 comments

Comments

@stuxt
Copy link
Owner

stuxt commented Feb 16, 2016

初探gulp[学习笔记1]

2016-02-16 小天同学

gulp是一个很方便的自动化构建工具,可以增强你的工作流程!同类的工具还有grunt等。但是gulp是一种基于流的自动化构建工具。

gulp的主要优势为:

  1. 易于使用
    通过代码优于配置的策略,Gulp 让简单的任务简单,复杂的任务可管理。
  2. 构建快速
    利用 Node.js 流的威力,你可以快速构建项目并减少频繁的 IO 操作。
  3. 插件高质
    Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作。
  4. 易于学习
    通过最少的 API,掌握 Gulp 毫不费力,构建工作尽在掌握:如同一系列流管道。

初探笔记

和grunt相比gulp的优势都在上面了,入门也是很简单的最少的API,随着社区的壮大插件也在不断的层出不穷,从而用起来适用的场景也更加广泛。

全局安装 gulp 是为了可以运行命令行, 而项目中得 gulp 是为了项目脚本依赖。 一般命令行工具都会全局安装,项目中用到的类库还是建议跟着项目走,这样每个项目可以使用自己的空间存放依赖列表,而不会造成全局污染和版本冲突。别人拿到你项目的时候,直接 npm install 就可以安装所有依赖,并立刻执行了。

所以gulp在使用过程中还是要跟着项目走,单独安装到项目目录下,方便插件等的管理。

@stuxt stuxt added the Blog label Feb 16, 2016
@stuxt
Copy link
Owner Author

stuxt commented Feb 16, 2016

@stuxt
Copy link
Owner Author

stuxt commented Aug 25, 2016

目前已在公司项目中使用gulp来作为基本的构建工具。
准备扩展Gulp+web pack的方式,来实现项目的打包。

@stuxt stuxt added the Article label Apr 21, 2017
@stuxt
Copy link
Owner Author

stuxt commented May 10, 2017

'use strict';
var gulp = require("gulp");
//引入依赖
var rev = require("gulp-rev"),//生成文件md5码
    revReplace = require("gulp-rev-collector"),//引用替换
    changed = require("gulp-changed"),//判断文件是否变化
    minifycss = require("gulp-clean-css"),//css压缩
    concat = require("gulp-concat"),//文件合并
    rename = require("gulp-rename"),//文件重命名
    jshint = require("gulp-jshint"),//js检验
    minijs = require("gulp-uglify"),//js压缩
    plumber = require('gulp-plumber');//错误信息提示
 
 
// css压缩、重命名、合并
gulp.task('css-mini',['getDate'], function() {
  return gulp.src('css/**/*.css',{ base: 'css' })//输入文件路径
    // .pipe(concat("index.min.css"))
    .pipe(changed('minicss'))
    .pipe(rename({ suffix: '_'+DateVersion }))
    .pipe(plumber())
    .pipe(minifycss({
            advanced: false,//类型:Boolean 默认:true [是否开启高级优化(合并选择器等)]
            compatibility: 'ie7',//保留ie7及以下兼容写法 类型:String 默认:''or'*' [启用兼容模式; 'ie7':IE7兼容模式,'ie8':IE8兼容模式,'*':IE9+兼容模式]
            keepBreaks: false,//类型:Boolean 默认:false [是否保留换行]
            keepSpecialComments: '*' //保留所有特殊前缀 当你用autoprefixer生成的浏览器前缀,如果不加这个参数,有可能将会删除你的部分前缀
        }))//压缩css文件
    .pipe(gulp.dest('minicss'));//文件输出路径
});
 
 
// js校验、压缩、重命名、合并
gulp.task('js', function() {
  return gulp.src('js/**/**.js',{ base: 'js' })//输入文件路径
    //.pipe(concat("index.min.js"))
    //.pipe(rename({ suffix: '.min' }))
    .pipe(plumber())
    //.pipe(jshint())
    //.pipe(jshint.reporter('default'))//输出错误报告
    .pipe(minijs({
            mangle: false,//类型:Boolean 默认:true 是否修改变量名
            compress: false,//类型:Boolean 默认:true 是否完全压缩
            // preserveComments: 'all' //保留所有注释
        }))//压缩js文件
    .pipe(gulp.dest('minijs'));//文件输出路径
});
 
 
//默认执行的任务并启动监控
gulp.task('default', ['js', 'css-mini'], function(){
    var jsWatch = gulp.watch('js/**/*.js',['js']);
    var cssWatch = gulp.watch('css/**/*.css',['css-mini']);
    jsWatch.on('change', function(event) {
      console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    });
    cssWatch.on('change', function(event) {
      console.log('File ' + event.path + ' was ' + event.type + ', running tasks...');
    });
});

@stuxt
Copy link
Owner Author

stuxt commented May 10, 2017

 {
  "name": "minifile",
  "version": "1.0.0",
  "description": "文件压缩工程",
  "main": "gulpfile.js",
  "dependencies": {
    "gulp": "^3.9.1",
    "gulp-changed": "^1.3.0",
    "gulp-jshint": "^2.0.1",
    "gulp-concat": "^2.6.0",
    "gulp-clean-css": "^2.0.11",
    "gulp-plumber": "^1.1.0",
    "gulp-minify-css": "^1.2.4",
    "gulp-notify": "^2.2.0",
    "gulp-rename": "^1.2.2",
    "gulp-rev": "^7.1.0",
    "gulp-rev-collector": "^1.0.5",
    "gulp-uglify": "^1.5.4",
    "jshint": "^2.9.2"
  },
  "devDependencies": {},
  "scripts": {
    "test": "gulp"
  },
  "keywords": [
    "压缩",
    "css",
    "js"
  ],
  "author": "chenyajun",
  "license": "MIT"
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant