first commit

This commit is contained in:
编码猿
2024-09-27 00:52:52 +08:00
commit d5a61090de
72 changed files with 11656 additions and 0 deletions

202
Template/gulpfile.js Executable file
View 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')
// 合并jscss文件
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'])