GULP插件常用集合

gulp自动化构建工具 都耳熟能详了

只是每个人的构建用法不太一样

我常用的也就这些js代码!

  1 var gulp = require('gulp'),
  2     runSequence = require('run-sequence'),
  3     browserSync = require('browser-sync').create(),
  4     del = require('del'),
  5     compass = require('gulp-compass'),
  6     ngAnnotate = require('gulp-ng-annotate'),
  7     ngmin = require('gulp-ngmin'),
  8     stripDebug = require('gulp-strip-debug'),
  9     concat = require('gulp-concat'),
 10     minifyCss = require('gulp-minify-css'), //压缩css
 11     rename = require('gulp-rename'),
 12     uglify = require('gulp-uglify'),
 13     jshint = require('gulp-jshint'),
 14     autoprefixer = require('gulp-autoprefixer'),
 15     fileinclude = require('gulp-file-include'); //分离html
 16 
 17 gulp.task('default', ['jshint'], function() {
 18    // gulp.start('minifyjs');
 19     return runSequence(['clean'], ['build'], ['serve', 'watch'], ['fileinclude']);
 20 });
 21 
 22 gulp.task('clean', function(callback) {
 23     return del('./dist/', callback);
 24 });
 25 
 26 gulp.task('build', function(callback) {
 27     return runSequence(['compass','minifyjs','staticFiles'], callback);
 28 });
 29 
 30 gulp.task('compass', function() {
 31     return gulp.src('./src/**/*.scss')
 32         .pipe(compass({
 33             config_file: './config.rb',
 34             css: 'src/stylesheets',
 35             sass: 'src/sass'
 36         }))
 37         .on('error', function(err) {
 38             console.log(err);
 39             this.emit('end');
 40         })
 41         .pipe(gulp.dest('./dist/stylesheets/'))
 42         .pipe(autoprefixer({
 43             browsers: [
 44                 'last 22 versions',
 45                 'Android >= 4.0',
 46                 'last 5 Chrome versions',
 47                 'last 5 Explorer versions',
 48                 'last 3 Safari versions',
 49                 'Firefox >= 20',
 50                 'iOS 7',
 51                 'Firefox ESR',
 52                 'Explorer >= 8',
 53                 'Opera >= 42',
 54                 'Safari >= 8',
 55                 'last 5 FirefoxAndroid versions',
 56                 'last 5 ChromeAndroid versions',
 57                 'last 5 ExplorerMobile versions'
 58             ],
 59             cascade: false
 60         }))
 61         .pipe(gulp.dest('./dist/stylesheets/'))
 62         .pipe(rename({ suffix: '.min' }))
 63         //压缩样式文件
 64         .pipe(minifyCss({ outSourceMap: false }))
 65         //输出压缩文件到指定目录
 66         .pipe(gulp.dest('./dist/stylesheets/'));
 67 });
 68 
 69 // gulp.task('testAutoFx', function() {
 70 //     gulp.src('src/stylesheets/main.css')
 71 //         .pipe(autoprefixer({
 72 //             browsers: ['last 2 versions', 'Android >= 4.0'],
 73 //  cascade: true, //是否美化属性值 默认:true 像这样:
 74 //-webkit-transform: rotate(45deg);
 75 //        transform: rotate(45deg);
 76 // remove: true //是否去掉不必要的前缀 默认:true 
 77 //         }))
 78 //         .pipe(gulp.dest('./dist/stylesheets/'));
 79 // });
 80 
 81 //合并压缩js
 82 gulp.task('minifyjs', function() {
 83     return gulp.src('./src/javascripts*/**/*.js') //js代码校验
 84         .pipe(concat('main.js')) //js代码合并 main.js
 85         .pipe(gulp.dest('./dist/javascripts/')) //整合后的输出路径
 86         .pipe(rename({ suffix: '.min' })) ////给文件添加.min后缀
 87         .pipe(ngAnnotate())
 88         .pipe(ngmin({ dynamic: false })) //Pre-minify AngularJS apps with ngmin
 89         .pipe(stripDebug()) //除去js代码中的console和debugger输出
 90         .pipe(uglify({ outSourceMap: false })) //压缩脚本文件
 91         .pipe(gulp.dest('./dist/javascripts/')); //输出压缩文件到指定目录
 92 });
 93 
 94 gulp.task('fileinclude', function() {
 95     // 适配page中所有文件夹下的所有html,排除page下的include文件夹中html
 96     return gulp.src(['src/**/*.html', '!src/include/**.html'])
 97         .pipe(fileinclude({
 98             prefix: '@@',
 99             basepath: '@file'
100         }))
101         .pipe(gulp.dest('./dist/'));
102 });
103 
104 
105 gulp.task('jshint', function() {
106     return gulp.src('./src/javascripts/**/*.js')
107         .pipe(jshint())
108         .pipe(jshint.reporter('default'));
109 });
110 
111 gulp.task('staticFiles', function() {
112     return gulp.src([
113             './src/**/*.html',
114             './src/images*/**/*.*',
115             './src/javascripts*/**/*.js',
116             './src/stylesheets*/**/*.css',
117             './src/framework*/*.*'
118         ])
119         .pipe(gulp.dest('./dist/'));
120 })
121 
122 gulp.task('serve', function() {
123     browserSync.init({
124         server: './dist',
125         port: 8888
126     });
127 });
128 
129 gulp.task('reload', function() {
130     return browserSync.reload();
131 });
132 
133 gulp.task('watch', function() {
134     return gulp.watch([
135         './src/**/*.html',
136         './src/**/*.scss',
137         './src/**/*.js'
138     ], function() {
139         return runSequence(['build'], ['reload'], ['minifyjs']);
140     })
141 });
142 
143 
144 /**
145  * task这个API用来创建任务,在命令行下可以输入 gulp test 来执行test的任务。
146  * watch这个API用来监听任务。
147  * src这个API设置需要处理的文件的路径,可以是多个文件以数组的形式[main.scss, vender.scss],也可以是正则表达式/** /*.scss。
148  * dest这个API设置生成文件的路径,一个任务可以有多个生成路径,一个可以输出未压缩的版本,另一个可以输出压缩后的版本。
149  */
原文地址:https://www.cnblogs.com/hasubasora/p/6608170.html