• 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  */
  • 相关阅读:
    dpdk 连接错误
    strace 跟踪文件
    鲲鹏服务器 centos 升级gcc + 安装qemu
    centos 升级gcc
    undefined reference to `shm_open'
    Golang与C互用
    [ TIME ] Timed out waiting for device dev-ttyS0.device. [DEPEND] Dependency failed for Serial Getty on ttyS0.
    大型 Web 应用插件化架构探索
    网易游戏基于 Flink 的流式 ETL 建设
    基于WASM的无侵入式全链路A/B Test实践
  • 原文地址:https://www.cnblogs.com/hasubasora/p/6608170.html
Copyright © 2020-2023  润新知