Kaynağa Gözat

update gulp

zhangweicheng 7 yıl önce
ebeveyn
işleme
7f5c26fc7c
6 değiştirilmiş dosya ile 304 ekleme ve 107 silme
  1. 3 0
      Dockerfile
  2. 4 0
      Dockerfile_qa
  3. 147 101
      gulpfile.js
  4. 149 0
      gulpfile.js.copy
  5. 1 6
      package.json
  6. BIN
      web/dest/css/fonts/fontawesome-webfont.woff2

+ 3 - 0
Dockerfile

@@ -4,8 +4,11 @@ COPY . ConstructionCost
 
 WORKDIR ConstructionCost
 
+RUN cnpm install -g gulp
+
 RUN cnpm install
 
+RUN gulp build
 
 EXPOSE 6060
 

+ 4 - 0
Dockerfile_qa

@@ -4,8 +4,12 @@ COPY . ConstructionCost
 
 WORKDIR ConstructionCost
 
+RUN cnpm install -g gulp
+
 RUN cnpm install
 
+RUN gulp build
+
 EXPOSE 6060
 
 ENV NODE_ENV=qa

+ 147 - 101
gulpfile.js

@@ -7,7 +7,6 @@ let gulpLoadPlugins = require('gulp-load-plugins');
 let del = require('del');
 let uglify = require('gulp-uglify-es').default;
 let config = require("./config/gulpConfig.js");
-let  runSequence = require('run-sequence');
 
 const $ = gulpLoadPlugins();
 let common_jspaths=config.common_jspaths;
@@ -18,131 +17,178 @@ let login_jspaths=config.login_jspaths;
 let main_jspaths=config.main_jspaths;
 let main_csspaths=config.main_css;
 let version=config.version;
+let cssDest='web/dest/css';
+let scriptsDest='web/dest/scripts';
+
+let commonOptions={
+    jspaths:common_jspaths,
+    csspaths:common_css,
+    concatName:'common.all.min'
+};
+
+let headerOptions={
+    version:version,
+    scriptsDest:'web/dest/scripts',
+    concatName:'header.all.min',
+    srcHtml:'web/src/html/common/header.html',
+    htmlDest:'web/common/html',
+    htmlName:'header.html',
+    injectList:['web/dest/scripts/common.all.min.'+version+'.js']
+};
+
+let loginOptions={
+    version:version,
+    scriptsDest:'web/dest/scripts',
+    jspaths:login_jspaths,
+    concatName:'login.all.min',
+    srcHtml:'web/src/html/login/login.html',
+    htmlDest:'web/users/html',
+    htmlName:'login.html',
+    injectList:[  'web/dest/scripts/common.all.min.'+version+'.js',
+        'web/dest/scripts/login.all.min.'+version+'.js',
+        'web/dest/css/common.all.min.'+version+'.css']
+}
 
-let taskObject={};
-function task_init(options) {
-    taskObject=options;
-    taskObject.version=version;
-    taskObject.scriptsDest='web/dest/scripts';
+let pmOptions={
+    version:version,
+    scriptsDest:'web/dest/scripts',
+    jspaths:pm_jspaths,
+    csspaths:pm_csspaths,
+    concatName:'pm.all.min',
+    srcHtml:'web/src/html/pm/!*.html',
+    htmlDest:'web/building_saas/pm/html',
+    htmlName:'project-management.html',
+    injectList:['web/dest/scripts/pm.all.min.'+version+'.js',
+        'web/dest/css/common.all.min.'+version+'.css',
+        'web/dest/css/pm.all.min.'+version+'.css']
+};
+
+let mainOptions={
+    version:version,
+    scriptsDest:'web/dest/scripts',
+    jspaths:main_jspaths,
+    csspaths:main_csspaths,
+    concatName:'main.all.min',
+    srcHtml:'web/src/html/main/main.html',
+    htmlDest:'web/building_saas/main/html',
+    htmlName:'main.html',
+    injectList:['web/dest/scripts/main.all.min.'+version+'.js',
+        'web/dest/css/common.all.min.'+version+'.css',
+        'web/dest/css/main.all.min.'+version+'.css']
 }
 
-gulp.task('minify', function (){
-    if(taskObject.jspaths){
-        return gulp.src(taskObject.jspaths)
+function minify(options) {
+    if(options.jspaths){
+        return gulp.src(options.jspaths)
+            .pipe($.plumber())
+            .pipe(uglify())
+            .pipe($.concat(options.concatName+"."+version+".js"))
+            .pipe(gulp.dest(scriptsDest));
+    }
+    return;
+}
+
+function css(options) {
+    if(options.csspaths){
+        return gulp.src(options.csspaths)
             .pipe($.plumber())
-           // .pipe(uglify())
-            .pipe($.concat(taskObject.concatName+"."+version+".js"))
-            .pipe(gulp.dest(taskObject.scriptsDest));
+            .pipe($.cssnano())
+            .pipe($.concat(options.concatName+"."+version+".css"))
+            .pipe(gulp.dest(cssDest));
     }
-   return;
+    return;
+}
+
+function inject(options) {
+    var target = gulp.src(options.htmlDest+'/'+options.htmlName);
+    var sources = gulp.src(options.injectList, {read: false});
+
+    return target.pipe($.plumber())
+        .pipe($.inject(sources))
+        .pipe(gulp.dest(options.htmlDest));
+}
+
+function htmlmin(options) {
+    return gulp.src(options.htmlDest+'/*.html')
+    //  .pipe($.htmlmin({collapseWhitespace: true}))
+        .pipe(gulp.dest(options.htmlDest));
+}
+
+
+gulp.task('minify', function (){
+    return minify(commonOptions);
 });
 
+gulp.task('css',function () {
+    return css(commonOptions);
+})
+
+gulp.task('common', ['minify','css']);
 
-gulp.task('copy',function () {
-    return gulp.src(taskObject.srcHtml)
-            .pipe($.plumber())
-            .pipe(gulp.dest(taskObject.htmlDest));
+gulp.task('login_minify',['common'], function (){
+    return minify(loginOptions);
+});
+
+gulp.task('login_css',function () {
+    return css(loginOptions);
 })
 
-gulp.task('inject',['minify','css'], function () {
-    var target = gulp.src(taskObject.htmlDest+'/'+taskObject.htmlName);
-    var sources = gulp.src(taskObject.injectList, {read: false});
+gulp.task('login_inject',['login_minify','login_css'],function () {
+    return inject(loginOptions);
+})
 
-    return target.pipe($.plumber())
-         .pipe($.inject(sources))
-         .pipe(gulp.dest(taskObject.htmlDest));
+gulp.task('login',['login_inject'], function (){
+    return htmlmin(loginOptions);
+});
+
+
+gulp.task('header_minify',['common'], function (){
+    return minify(headerOptions);
 });
 
-gulp.task('htmlmin',function () {
-    return gulp.src(taskObject.htmlDest+'/*.html')
-      //  .pipe($.htmlmin({collapseWhitespace: true}))
-        .pipe(gulp.dest(taskObject.htmlDest));
+gulp.task('header_css',function () {
+    return css(headerOptions);
 })
 
-gulp.task('css',function () {
-    if(taskObject.pm_csspaths){
-        return gulp.src(taskObject.pm_csspaths)
-            .pipe($.plumber())
-            .pipe($.cssnano())
-            .pipe($.concat(taskObject.concatName+"."+version+".css"))
-            .pipe(gulp.dest(taskObject.cssDest));
-    }
-    return;
+gulp.task('header_inject',['header_minify','header_css'],function () {
+    return inject(headerOptions);
 })
 
-gulp.task('common', function (){
-    let options = {
-        jspaths:common_jspaths,
-        pm_csspaths:common_css,
-        concatName:'common.all.min',
-        cssDest:'web/dest/css'
-    }
-    task_init(options);
-    runSequence('minify','css');
+gulp.task('header',['header_inject'], function (){
+    return htmlmin(headerOptions);
 });
 
-gulp.task('header', function (){
-    let options = {
-        concatName:'header.all.min',
-        srcHtml:'web/src/html/common/header.html',
-        htmlDest:'web/common/html',
-        htmlName:'header.html',
-        injectList:['web/dest/scripts/common.all.min.'+version+'.js']
-    };
-    task_init(options);
-    runSequence('inject','htmlmin');
+gulp.task('pm_minify',['common'], function (){
+    return minify(pmOptions);
 });
 
+gulp.task('pm_css',function () {
+    return css(pmOptions);
+})
 
-gulp.task('login', function (){
-    let options = {
-        jspaths:login_jspaths,
-        concatName:'login.all.min',
-        srcHtml:'web/src/html/login/login.html',
-        htmlDest:'web/users/html',
-        htmlName:'login.html',
-        injectList:[  'web/dest/scripts/common.all.min.'+version+'.js',
-                        'web/dest/scripts/login.all.min.'+version+'.js',
-                        'web/dest/css/common.all.min.'+version+'.css']
-    }
-    task_init(options);
-    runSequence('inject','htmlmin');
+gulp.task('pm_inject',['pm_minify','pm_css'],function () {
+    return inject(pmOptions);
+})
+
+gulp.task('pm',['pm_inject'], function (){
+    return htmlmin(pmOptions);
 });
 
-gulp.task('pm', function (){
-    let options = {
-        jspaths:pm_jspaths,
-        pm_csspaths:pm_csspaths,
-        concatName:'pm.all.min',
-        cssDest:'web/dest/css',
-        srcHtml:'web/src/html/pm/*.html',
-        htmlDest:'web/building_saas/pm/html',
-        htmlName:'project-management.html',
-        injectList:['web/dest/scripts/pm.all.min.'+version+'.js',
-                      'web/dest/css/common.all.min.'+version+'.css',
-                      'web/dest/css/pm.all.min.'+version+'.css']
-    }
-    task_init(options);
-    runSequence('inject','htmlmin');
+gulp.task('main_minify',['common'], function (){
+    return minify(mainOptions);
 });
 
-gulp.task('main',function () {
-    let options ={
-        jspaths:main_jspaths,
-        pm_csspaths:main_csspaths,
-        concatName:'main.all.min',
-        cssDest:'web/dest/css',
-        srcHtml:'web/src/html/main/main.html',
-        htmlDest:'web/building_saas/main/html',
-        htmlName:'main.html',
-        injectList:['web/dest/scripts/main.all.min.'+version+'.js',
-            'web/dest/css/common.all.min.'+version+'.css',
-            'web/dest/css/main.all.min.'+version+'.css']
-    }
-    task_init(options);
-    runSequence('inject','htmlmin');
+gulp.task('main_css',function () {
+    return css(mainOptions);
 })
 
-gulp.task('build',['common'],function () {
-    runSequence('header',['login','pm','main']);
-});
+gulp.task('main_inject',['main_minify','main_css'],function () {
+    return inject(mainOptions);
+})
+
+gulp.task('main',['main_inject'], function (){
+    return htmlmin(mainOptions);
+});
+
+
+gulp.task('build',['header','login','pm','main']);

+ 149 - 0
gulpfile.js.copy

@@ -0,0 +1,149 @@
+
+/**
+ * Created by chen on 2017/9/26.
+ */
+
+let gulp =require( 'gulp');
+let gulpLoadPlugins = require('gulp-load-plugins');
+let del = require('del');
+let uglify = require('gulp-uglify-es').default;
+let config = require("./config/gulpConfig.js");
+let  runSequence = require('run-sequence');
+
+const $ = gulpLoadPlugins();
+let common_jspaths=config.common_jspaths;
+let common_css=config.common_css;
+let pm_jspaths=config.pm_jspaths;
+let pm_csspaths=config.pm_css;
+let login_jspaths=config.login_jspaths;
+let main_jspaths=config.main_jspaths;
+let main_csspaths=config.main_css;
+let version=config.version;
+
+let taskObject={};
+function task_init(options) {
+    taskObject=options;
+    taskObject.version=version;
+    taskObject.scriptsDest='web/dest/scripts';
+}
+
+gulp.task('minify', function (){
+    if(taskObject.jspaths){
+        return gulp.src(taskObject.jspaths)
+            .pipe($.plumber())
+           // .pipe(uglify())
+            .pipe($.concat(taskObject.concatName+"."+version+".js"))
+            .pipe(gulp.dest(taskObject.scriptsDest));
+    }
+   return;
+});
+
+
+gulp.task('copy',function () {
+    return gulp.src(taskObject.srcHtml)
+            .pipe($.plumber())
+            .pipe(gulp.dest(taskObject.htmlDest));
+})
+
+gulp.task('inject',['minify','css'], function () {
+    var target = gulp.src(taskObject.htmlDest+'/'+taskObject.htmlName);
+    var sources = gulp.src(taskObject.injectList, {read: false});
+
+    return target.pipe($.plumber())
+         .pipe($.inject(sources))
+         .pipe(gulp.dest(taskObject.htmlDest));
+});
+
+gulp.task('htmlmin',function () {
+    return gulp.src(taskObject.htmlDest+'/*.html')
+      //  .pipe($.htmlmin({collapseWhitespace: true}))
+        .pipe(gulp.dest(taskObject.htmlDest));
+})
+
+gulp.task('css',function () {
+    if(taskObject.pm_csspaths){
+        return gulp.src(taskObject.pm_csspaths)
+            .pipe($.plumber())
+            .pipe($.cssnano())
+            .pipe($.concat(taskObject.concatName+"."+version+".css"))
+            .pipe(gulp.dest(taskObject.cssDest));
+    }
+    return;
+})
+
+gulp.task('common', function (){
+    let options = {
+        jspaths:common_jspaths,
+        pm_csspaths:common_css,
+        concatName:'common.all.min',
+        cssDest:'web/dest/css'
+    }
+    task_init(options);
+    runSequence('minify','css');
+});
+
+gulp.task('header', function (){
+    let options = {
+        concatName:'header.all.min',
+        srcHtml:'web/src/html/common/header.html',
+        htmlDest:'web/common/html',
+        htmlName:'header.html',
+        injectList:['web/dest/scripts/common.all.min.'+version+'.js']
+    };
+    task_init(options);
+    runSequence('inject','htmlmin');
+});
+
+
+gulp.task('login', function (){
+    let options = {
+        jspaths:login_jspaths,
+        concatName:'login.all.min',
+        srcHtml:'web/src/html/login/login.html',
+        htmlDest:'web/users/html',
+        htmlName:'login.html',
+        injectList:[  'web/dest/scripts/common.all.min.'+version+'.js',
+                        'web/dest/scripts/login.all.min.'+version+'.js',
+                        'web/dest/css/common.all.min.'+version+'.css']
+    }
+    task_init(options);
+    runSequence('inject','htmlmin');
+});
+
+gulp.task('pm', function (){
+    let options = {
+        jspaths:pm_jspaths,
+        pm_csspaths:pm_csspaths,
+        concatName:'pm.all.min',
+        cssDest:'web/dest/css',
+        srcHtml:'web/src/html/pm/*.html',
+        htmlDest:'web/building_saas/pm/html',
+        htmlName:'project-management.html',
+        injectList:['web/dest/scripts/pm.all.min.'+version+'.js',
+                      'web/dest/css/common.all.min.'+version+'.css',
+                      'web/dest/css/pm.all.min.'+version+'.css']
+    }
+    task_init(options);
+    runSequence('inject','htmlmin');
+});
+
+gulp.task('main',function () {
+    let options ={
+        jspaths:main_jspaths,
+        pm_csspaths:main_csspaths,
+        concatName:'main.all.min',
+        cssDest:'web/dest/css',
+        srcHtml:'web/src/html/main/main.html',
+        htmlDest:'web/building_saas/main/html',
+        htmlName:'main.html',
+        injectList:['web/dest/scripts/main.all.min.'+version+'.js',
+            'web/dest/css/common.all.min.'+version+'.css',
+            'web/dest/css/main.all.min.'+version+'.css']
+    }
+    task_init(options);
+    runSequence('inject','htmlmin');
+})
+
+gulp.task('build',['common'],function () {
+    runSequence('header',['login','pm','main']);
+});

+ 1 - 6
package.json

@@ -36,25 +36,20 @@
     "gulp-autoprefixer": "^3.0.1",
     "gulp-babel": "^6.1.1",
     "babel-core": "^6.4.0",
-    "gulp-cache": "^0.2.8",
     "gulp-cssnano": "^2.0.0",
     "gulp-eslint": "^0.13.2",
     "gulp-htmlmin": "^1.3.0",
-    "gulp-if": "^1.2.5",
     "gulp-imagemin": "^2.2.1",
     "gulp-load-plugins": "^0.10.0",
     "gulp-plumber": "^1.0.1",
     "gulp-sass": "^2.0.0",
     "gulp-size": "^1.2.1",
-    "gulp-sourcemaps": "^1.5.0",
     "gulp-uglify": "^1.1.0",
-    "gulp-useref": "^3.0.0",
     "gulp-inject":"^4.3.0",
     "gulp-concat": "^2.6.1",
     "main-bower-files": "^2.5.0",
     "wiredep": "^2.2.2",
-    "gulp-uglify-es":"^0.1.3",
-    "run-sequence":"^2.2.0"
+    "gulp-uglify-es":"^0.1.3"
   },
   "scripts": {
     "start": "C:\\Users\\mai\\AppData\\Roaming\\npm\\babel-node.cmd server.js"

BIN
web/dest/css/fonts/fontawesome-webfont.woff2