艾辉 发表于 2018-1-13 15:58:47

git 开发时常用的命令

var gulp = require('gulp');  

var connect = require('gulp-connect');  

var proxy = require('http-proxy-middleware');  

var inject = require('gulp-inject');  

var ngAnnotate = require('gulp-ng-annotate');  

var stripDebug = require('gulp-strip-debug');  

var uglify = require('gulp-uglify');  

var concat = require('gulp-concat');  

var imagemin = require('gulp-imagemin');  

var htmlmin = require('gulp-htmlmin');  

var runSequence = require('run-sequence');  

var del = require('del');  

var md5 = require('gulp-md5');  

var minifyCss = require('gulp-minify-css');  

var html2js = require('gulp-html2js');  

var rename = require('gulp-rename');  

var gzip = require('gulp-gzip');  

  
gulp.task(
'webserver', function () {  connect.server({
  root:
'app',  livereload:
true,  port:
4200,  middleware:
function (connect, opt) {return [  proxy(
'/questionnaire', {  target:
'http://192.168.100.124:8081',  changeOrigin:
true  })
// proxy('/Questionnaire',{  //   target: 'http://192.168.202.202:3306/',
  //   changeOrigin:true
  // })
  
            ];
  

  

  }
  });
  
});
  

  
var srcPath = {
  baseTemplate: './app/index-origin.html',
  lib: {
  js: [
  "./app/lib/angular/angular.js",
  "./app/lib/jquery.min.js",
  "./app/lib/bootstrap/dist/js/bootstrap.js",
  "./app/lib/moment/moment.js",
  "./app/lib/angular-ui-router/release/angular-ui-router.js",
  "./app/lib/angular-bootstrap/ui-bootstrap-tpls.js",
  "./app/lib/angular-bootstrap/angular-locale_zh-cn.js",
  "./app/lib/angular-breadcrumb/dist/angular-breadcrumb.js",
  "./app/lib/angular-md5/angular-md5.min.js",
  "./app/lib/angular-breadcrumb/dist/angular-breadcrumb.js",
  "./app/lib/headroom.min.js",
  "./app/lib/highlight.min.js",
  "./app/lib/jquery.smoove.js",
  "./app/lib/aos.js",
  "./app/lib/fullPage.min.js",
  "./app/lib/jquery.SuperSlide.2.1.1.js"
  ],
  css: [
  "./app/css/bootstrap.css",
  "./app/css/aos.css",
  "./app/css/iconfont.css"
  ]
  },
  application: {
  js: ['./app/js/app.js', './app/js/**/*.js'],
  css: ['./app/css/css.css'],
  template: ['./app/templates/**/*.html']
  },
  images: ['./app/img/**.*'],
  fonts: ['./app/fonts/*']
  
};
  

  
gulp.task('inject', function () {
  var libs = gulp.src(srcPath.lib.js.concat(srcPath.lib.css), {base: './app', read: false});
  var application = gulp.src(srcPath.application.js.concat(srcPath.application.css), {base: './app', read: false});
  

  gulp.src('./app/index-origin.html')
  .pipe(inject(libs, {relative: true, name: 'lib'}))
  .pipe(inject(application, {
  relative: true,
  name: 'application'
  })
  )
  .pipe(rename('index.html'))
  .pipe(gulp.dest('./app'))
  
});
  

  
gulp.task('html', function () {
  gulp.src('./app/templates/*.html')
  .pipe(connect.reload());
  
});
  

  
gulp.task('js', function () {
  gulp.src('./app/js/**/*.js')
  .pipe(connect.reload());
  
});
  

  
gulp.task('watch', function () {
  gulp.watch(['./app/templates/*.html'], ['html']);
  gulp.watch(['./app/js/**/*.js'], ['js']);
  
});
  

  
gulp.task('default', ['inject', 'webserver', 'watch']);
  

  
//
  
// 以下为生产构建配置
  
//
  
var configuration = {
  html: {
  removeComments: true,
  removeCommentsFromCDATA: true,
  collapseWhitespace: true,
  conservativeCollapse: true,
  removeScriptTypeAttributes: true
  },
  inject: {
  lib: {
  name: 'lib',
  relative: true,
  ignorePath: '../build'
  },
  app: {
  name: 'application',
  relative: true,
  ignorePath: '../build/'
  },
  template: {
  name: 'template',
  relative: true,
  ignorePath: '../build/'
  }
  },
  html2js: {
  base: 'app/',
  name: 'app',
  useStrict: true
  },
  gzip: {
  threshold: 512,
  level: 9,
  memLevel: 2
  }
  
};
  

  
gulp.task('clean', function (done) {
  del('build/', done);
  
});
  

  
gulp.task('image', function () {
  gulp.src(srcPath.images)
  // .pipe(imagemin())
  .pipe(gulp.dest('build/img/'));
  
});
  

  
gulp.task('fonts', function () {
  gulp.src(srcPath.fonts).pipe(gulp.dest('build/fonts/'));
  
});
  

  
gulp.task('src-inject-build', function () {
  var honeyLibScript
  , honeyLibStylesheet
  , honeyApplicationTemplate
  , honeyApplicationScript
  , honeyApplicationStylesheet;
  

  honeyLibScript =
  gulp.src(srcPath.lib.js)
  .pipe(ngAnnotate())
  .pipe(concat('honey_lib_script.js'))
  .pipe(uglify())
  .pipe(md5(12))
  .pipe(rename({extname: '.min.js'}))
  .pipe(gulp.dest('./build/js/'));
  

  honeyLibStylesheet =
  gulp.src(srcPath.lib.css)
  .pipe(concat('honey_lib_stylesheet.css'))
  .pipe(minifyCss())
  .pipe(md5(12))
  .pipe(rename({extname: '.min.css'}))
  .pipe(gulp.dest('./build/css/'));
  

  honeyApplicationScript =
  gulp.src(srcPath.application.js)
  .pipe(ngAnnotate())
  .pipe(concat('honey_application_script.js', {newLine: ';'}))
  .pipe(stripDebug())
  .pipe(uglify())
  .pipe(md5(12))
  .pipe(rename({extname: '.min.js'}))
  .pipe(gulp.dest('./build/js/'));
  

  honeyApplicationStylesheet =
  gulp.src(srcPath.application.css)
  .pipe(concat('honey_application_stylesheet.css'))
  .pipe(minifyCss())
  .pipe(md5(12))
  .pipe(rename({extname: '.min.css'}))
  .pipe(gulp.dest('./build/css/'));
  

  honeyApplicationTemplate =
  gulp.src(srcPath.application.template)
  .pipe(htmlmin(configuration.html))
  .pipe(html2js('honey_template_script.js', configuration.html2js))
  .pipe(uglify())
  .pipe(md5(10))
  .pipe(rename({extname: '.min.js'}))
  .pipe(gulp.dest('./build/js/'));
  

  gulp.src(srcPath.baseTemplate)
  .pipe(inject(honeyLibScript, configuration.inject.lib))
  .pipe(inject(honeyLibStylesheet, configuration.inject.lib))
  .pipe(inject(honeyApplicationScript, configuration.inject.app))
  .pipe(inject(honeyApplicationStylesheet, configuration.inject.app))
  .pipe(inject(honeyApplicationTemplate, configuration.inject.template))
  // .pipe(htmlmin(configuration.html))
  
      .pipe(rename({
  basename: 'index'
  }))
  .pipe(gulp.dest('./build/'));
  
});
  

  
gulp.task('build', function () {
  runSequence(['image', 'fonts', 'src-inject-build']);
  
});
页: [1]
查看完整版本: git 开发时常用的命令