gulpfile.js.copy 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149
  1. /**
  2. * Created by chen on 2017/9/26.
  3. */
  4. let gulp =require( 'gulp');
  5. let gulpLoadPlugins = require('gulp-load-plugins');
  6. let del = require('del');
  7. let uglify = require('gulp-uglify-es').default;
  8. let config = require("./config/gulpConfig.js");
  9. let runSequence = require('run-sequence');
  10. const $ = gulpLoadPlugins();
  11. let common_jspaths=config.common_jspaths;
  12. let common_css=config.common_css;
  13. let pm_jspaths=config.pm_jspaths;
  14. let pm_csspaths=config.pm_css;
  15. let login_jspaths=config.login_jspaths;
  16. let main_jspaths=config.main_jspaths;
  17. let main_csspaths=config.main_css;
  18. let version=config.version;
  19. let taskObject={};
  20. function task_init(options) {
  21. taskObject=options;
  22. taskObject.version=version;
  23. taskObject.scriptsDest='web/dest/scripts';
  24. }
  25. gulp.task('minify', function (){
  26. if(taskObject.jspaths){
  27. return gulp.src(taskObject.jspaths)
  28. .pipe($.plumber())
  29. // .pipe(uglify())
  30. .pipe($.concat(taskObject.concatName+"."+version+".js"))
  31. .pipe(gulp.dest(taskObject.scriptsDest));
  32. }
  33. return;
  34. });
  35. gulp.task('copy',function () {
  36. return gulp.src(taskObject.srcHtml)
  37. .pipe($.plumber())
  38. .pipe(gulp.dest(taskObject.htmlDest));
  39. })
  40. gulp.task('inject',['minify','css'], function () {
  41. var target = gulp.src(taskObject.htmlDest+'/'+taskObject.htmlName);
  42. var sources = gulp.src(taskObject.injectList, {read: false});
  43. return target.pipe($.plumber())
  44. .pipe($.inject(sources))
  45. .pipe(gulp.dest(taskObject.htmlDest));
  46. });
  47. gulp.task('htmlmin',function () {
  48. return gulp.src(taskObject.htmlDest+'/*.html')
  49. // .pipe($.htmlmin({collapseWhitespace: true}))
  50. .pipe(gulp.dest(taskObject.htmlDest));
  51. })
  52. gulp.task('css',function () {
  53. if(taskObject.pm_csspaths){
  54. return gulp.src(taskObject.pm_csspaths)
  55. .pipe($.plumber())
  56. .pipe($.cssnano())
  57. .pipe($.concat(taskObject.concatName+"."+version+".css"))
  58. .pipe(gulp.dest(taskObject.cssDest));
  59. }
  60. return;
  61. })
  62. gulp.task('common', function (){
  63. let options = {
  64. jspaths:common_jspaths,
  65. pm_csspaths:common_css,
  66. concatName:'common.all.min',
  67. cssDest:'web/dest/css'
  68. }
  69. task_init(options);
  70. runSequence('minify','css');
  71. });
  72. gulp.task('header', function (){
  73. let options = {
  74. concatName:'header.all.min',
  75. srcHtml:'web/src/html/common/header.html',
  76. htmlDest:'web/common/html',
  77. htmlName:'header.html',
  78. injectList:['web/dest/scripts/common.all.min.'+version+'.js']
  79. };
  80. task_init(options);
  81. runSequence('inject','htmlmin');
  82. });
  83. gulp.task('login', function (){
  84. let options = {
  85. jspaths:login_jspaths,
  86. concatName:'login.all.min',
  87. srcHtml:'web/src/html/login/login.html',
  88. htmlDest:'web/users/html',
  89. htmlName:'login.html',
  90. injectList:[ 'web/dest/scripts/common.all.min.'+version+'.js',
  91. 'web/dest/scripts/login.all.min.'+version+'.js',
  92. 'web/dest/css/common.all.min.'+version+'.css']
  93. }
  94. task_init(options);
  95. runSequence('inject','htmlmin');
  96. });
  97. gulp.task('pm', function (){
  98. let options = {
  99. jspaths:pm_jspaths,
  100. pm_csspaths:pm_csspaths,
  101. concatName:'pm.all.min',
  102. cssDest:'web/dest/css',
  103. srcHtml:'web/src/html/pm/*.html',
  104. htmlDest:'web/building_saas/pm/html',
  105. htmlName:'project-management.html',
  106. injectList:['web/dest/scripts/pm.all.min.'+version+'.js',
  107. 'web/dest/css/common.all.min.'+version+'.css',
  108. 'web/dest/css/pm.all.min.'+version+'.css']
  109. }
  110. task_init(options);
  111. runSequence('inject','htmlmin');
  112. });
  113. gulp.task('main',function () {
  114. let options ={
  115. jspaths:main_jspaths,
  116. pm_csspaths:main_csspaths,
  117. concatName:'main.all.min',
  118. cssDest:'web/dest/css',
  119. srcHtml:'web/src/html/main/main.html',
  120. htmlDest:'web/building_saas/main/html',
  121. htmlName:'main.html',
  122. injectList:['web/dest/scripts/main.all.min.'+version+'.js',
  123. 'web/dest/css/common.all.min.'+version+'.css',
  124. 'web/dest/css/main.all.min.'+version+'.css']
  125. }
  126. task_init(options);
  127. runSequence('inject','htmlmin');
  128. })
  129. gulp.task('build',['common'],function () {
  130. runSequence('header',['login','pm','main']);
  131. });