gulp for production

This commit is contained in:
FangfangZhao 2018-11-17 21:15:55 +08:00
parent 584d405b67
commit 4d25fc8a8e
5 changed files with 69 additions and 32 deletions

View file

@ -1,27 +0,0 @@
const gulp = require('gulp')
const babel = require('gulp-babel')
const uglify = require('gulp-uglify')
const cssclean = require('gulp-clean-css')
const rename = require('gulp-rename')
gulp.task('es62es5', () => {
return gulp.src('../src/main/webapp/assets/js/**/*.js*')
.pipe(gulp.dest('./js/es6'))
.pipe(babel())
.pipe(gulp.dest('./js/es5'))
.pipe(uglify({ mangle: true }))
.pipe(rename({ extname: '.min.js' }))
.pipe(gulp.dest('./build/js'))
})
gulp.task('css', () => {
return gulp.src('../src/main/webapp/assets/css/**/*.css')
.pipe(cssclean())
.pipe(rename({ extname: '.min.css' }))
.pipe(gulp.dest('./build/css'))
})
gulp.task('default', ['es62es5'])
gulp.task('all', ['es62es5', 'css'])

8
.gitignore vendored
View file

@ -29,7 +29,7 @@ hs_err_pid*
/.project
/bin/
.DS_Store
/.babel/node_modules/
/.babel/package-lock.json
/.babel/js/
/.babel/build/
/.production/node_modules/
/.production/package-lock.json
/.production/js/
/.production/build/

59
.production/gulpfile.js Normal file
View file

@ -0,0 +1,59 @@
const gulp = require('gulp')
const babel = require('gulp-babel')
const uglify = require('gulp-uglify')
const cssclean = require('gulp-clean-css')
const rename = require('gulp-rename')
const replace = require('gulp-replace')
const debug = require('gulp-debug')
const fs = require('graceful-fs')
// compress js (and ES6 > ES5)
gulp.task('es62es5', () => {
return gulp.src('../src/main/webapp/assets/js/**/*.js?(x)')
.pipe(gulp.dest('./js/es6'))
.pipe(babel())
.pipe(gulp.dest('./js/es5'))
.pipe(uglify({ mangle: true }))
.pipe(debug({ title: 'compress file : ' }))
//.pipe(rename({ extname: '.min.js' }))
.pipe(gulp.dest('./build/js'))
})
// compress css
gulp.task('css', () => {
return gulp.src('../src/main/webapp/assets/css/**/*.css')
.pipe(cssclean())
//.pipe(rename({ extname: '.min.css' }))
.pipe(gulp.dest('./build/css'))
})
// replace compressed js/css in jsp
// compress and replace inline js
gulp.task('repljsp', () => {
return gulp.src('../src/main/webapp/**/*-list.jsp')
// .pipe(replace(/<script type="text\/babel">([\s]+[\d\D]*)<\/script>/igm, (m, p, o, s) => {
// // console.log('ES6 >>>>>>>>>> ' + p)
// let es6_temp = './build/js/temp-es6.js'
// let es5_temp = './build/js/temp-es5.js'
// fs.writeFileSync(es6_temp, p)
// gulp.src(es6_temp)
// // .pipe(babel())
// .pipe(debug({ title: 'compress temp file : ' }))
// // .pipe(uglify({ mangle: true }))
// .pipe(gulp.dest(es5_temp))
// // let es52str = fs.readFileSync(es5_temp)
// // console.log('ES5 >>>>>>>>>> ' + es52str)
// return '<script></script>'
// }))
.pipe(replace(/ type="text\/babel"/ig, ''))
.pipe(gulp.dest('./build/jsp'))
})
gulp.task('default', ['es62es5'])
gulp.task('all', ['es62es5', 'css', 'repljsp'])

View file

@ -17,10 +17,15 @@
"@babel/plugin-proposal-class-properties": "^7.1.0",
"@babel/preset-env": "^7.1.6",
"@babel/preset-react": "^7.0.0",
"graceful-fs": "^4.1.15",
"gulp": "^3.9.1",
"gulp-babel": "^8.0.0",
"gulp-clean-css": "^3.10.0",
"gulp-debug": "^4.0.0",
"gulp-read": "^1.0.1",
"gulp-rename": "^1.4.0",
"gulp-uglify": "^3.0.1"
"gulp-replace": "^1.0.0",
"gulp-uglify": "^3.0.1",
"vinyl": "^2.2.0"
}
}