first commit
This commit is contained in:
202
Template/gulpfile.js
Executable file
202
Template/gulpfile.js
Executable file
@@ -0,0 +1,202 @@
|
||||
const gulp = require('gulp')
|
||||
// 编译jade文件为hrml
|
||||
const jade = require('gulp-jade')
|
||||
// 编译stylus文件为css
|
||||
const stylus = require('gulp-stylus')
|
||||
// 自动为css3属性加前缀
|
||||
const autoprefixer = require('gulp-autoprefixer')
|
||||
// 合并js,css文件
|
||||
const concat = require('gulp-concat')
|
||||
// 压缩css
|
||||
const cssmin = require('gulp-clean-css')
|
||||
// gulp 文件监听
|
||||
const watchPath = require('gulp-watch-path')
|
||||
// zip压缩
|
||||
const zip = require('gulp-zip')
|
||||
// 压缩js文件
|
||||
const uglify = require('gulp-uglify')
|
||||
// 处理gulp错误,防止程序报错终止
|
||||
const plumber = require('gulp-plumber')
|
||||
// 引入gulp的配置文件
|
||||
const config = require('./config/index.js')
|
||||
// 引入全局公共方法
|
||||
const { RemoveFile } = require('./utils')
|
||||
|
||||
const DistPublic = `${config.styl.stylTodist}public`
|
||||
|
||||
/**
|
||||
* 编译jade为html
|
||||
*/
|
||||
gulp.task('jade', function() {
|
||||
return gulp.src(config.jade.jadeTohtml)
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(jade({
|
||||
pretty: true
|
||||
}))
|
||||
.pipe(gulp.dest(config.jade.jadeTodist))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 编译公共页 css
|
||||
*/
|
||||
gulp.task('publicstyl', function() {
|
||||
return gulp.src(config.styl.stylTocssPublic)
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(stylus())
|
||||
.pipe(autoprefixer({
|
||||
browsers: ['last 2 versions','last 2 Explorer versions','Android >= 4.0'],
|
||||
cascade: true
|
||||
}))
|
||||
/**
|
||||
* 压缩兼容处理css文件,取消注释使用
|
||||
*/
|
||||
// .pipe(cssmin({
|
||||
// advanced: false,
|
||||
// compatibility: 'ie7',
|
||||
// keepBreaks: false,
|
||||
// keepSpecialComments: '*'
|
||||
// }))
|
||||
.pipe(gulp.dest(DistPublic))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 编译主要页面的 css,合并为main.css
|
||||
*/
|
||||
gulp.task('pagestyl', function() {
|
||||
return gulp.src(config.styl.stylTocssPage)
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(stylus())
|
||||
.pipe(autoprefixer({
|
||||
browsers: ['last 2 versions','last 2 Explorer versions','Android >= 4.0'],
|
||||
cascade: true
|
||||
}))
|
||||
.pipe(concat(config.styl.stylToFileName))
|
||||
/**
|
||||
* 同上
|
||||
*/
|
||||
// .pipe(cssmin({
|
||||
// advanced: false,
|
||||
// compatibility: 'ie7',
|
||||
// keepBreaks: false,
|
||||
// keepSpecialComments: '*'
|
||||
// }))
|
||||
.pipe(gulp.dest(`${config.styl.stylTodist}page`))
|
||||
})
|
||||
|
||||
/**
|
||||
* 拷贝 public中的第三方css到dist文件夹
|
||||
*/
|
||||
gulp.task('copycss',function(){
|
||||
return gulp.src('src/assets/css/public/*.css')
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(cssmin({
|
||||
advanced: false,
|
||||
compatibility: 'ie7',
|
||||
keepBreaks: false,
|
||||
keepSpecialComments: '*'
|
||||
}))
|
||||
.pipe(gulp.dest(DistPublic))
|
||||
})
|
||||
|
||||
/**
|
||||
* 拷贝img 到dist文件夹
|
||||
*/
|
||||
gulp.task('copyimg',function(){
|
||||
return gulp.src('src/assets/img/*')
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(gulp.dest('dist/img'))
|
||||
})
|
||||
|
||||
/**
|
||||
* 拷贝字体文件
|
||||
*/
|
||||
gulp.task('copyfont',function(){
|
||||
return gulp.src('src/assets/font/*')
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(gulp.dest('dist/font'))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 拷贝js文件
|
||||
*/
|
||||
gulp.task('copyjs',function(){
|
||||
return gulp.src('src/assets/js/*')
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
/**
|
||||
* 压缩js代码,取消注释启用
|
||||
*/
|
||||
// .pipe(uglify({
|
||||
// compress: false
|
||||
// }))
|
||||
.pipe(gulp.dest('dist/js'))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 自动zip打包 dist 文件夹,用于提交给后端
|
||||
*/
|
||||
gulp.task('Online',function(){
|
||||
return gulp.src(['./dist/**'])
|
||||
.pipe(plumber({ errHandler: e => {
|
||||
gutil.beep()
|
||||
gutil.log(e)
|
||||
}}))
|
||||
.pipe(zip('Online.zip'))
|
||||
.pipe(gulp.dest('./'))
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 监听用户在 src/ 的所有文件操作
|
||||
*/
|
||||
gulp.task('file', function() {
|
||||
gulp.watch(config.watch.watchFile, function(event) {
|
||||
let paths = watchPath(event,'src/', 'Template/src/')
|
||||
switch (event.type){
|
||||
case 'deleted':
|
||||
console.log('删除操作...')
|
||||
RemoveFile(paths.srcFilename)
|
||||
break
|
||||
default:
|
||||
console.log('其他操作...')
|
||||
gulp.run('publicstyl','copyfont','pagestyl','jade','copyjs','copyimg','copycss','Online')
|
||||
break
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
/**
|
||||
* 默认先运行一次 编译过程
|
||||
*/
|
||||
gulp.run('publicstyl','copyfont','pagestyl','jade','copyjs','copyimg','copycss','Online')
|
||||
|
||||
|
||||
/**
|
||||
* 执行file任务,当文件被操作后进行相关的编译过程
|
||||
*/
|
||||
gulp.task('default',['file'])
|
||||
Reference in New Issue
Block a user