老代码java web的前后端分离

本文介绍如何使用Gulp工具进行前端资源的构建和优化,包括HTML模板的处理、JS文件的合并压缩、CSS的编译与优化,以及图片的Base64内联处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

接触到一个老的java web 项目,

以前是前后放在一个项目里  目录如下

jsp 代码 大致如下:

采用gulp 分离  

jsp  转成模板   使用gulp-file-include 引入

模板大致如下:

gulp-html:

const compressHtm = require('gulp-htmlmin')
const fileinclude = require('gulp-file-include');
const { aimPath } = require('./config')
// const entry = ['./src/pages/*.html', './src/pages/*/*.html', './src/pages/*/*/*.html']
const entry = [
  './src/pages/login.htm',
  './src/pages/register.htm',
  './src/pages/index.htm'
]

module.exports = {
  handler: gulp => {
    return () => {
      return gulp.src(entry,{base:'./src/pages'})
      .pipe(fileinclude({
        prefix: '@@',
        basepath: '@file'
    }))
        .pipe(compressHtm({
          removeComments: true, // 清除HTML注释
          collapseWhitespace: false, // 压缩HTML
          //collapseBooleanAttributes: true, // 省略布尔属性的值 <input checked="true"/> ==> <input />
          //removeEmptyAttributes: true, // 删除所有空格作属性值 <input id="" /> ==> <input />
          removeScriptTypeAttributes: true, // 删除<script>的type="text/javascript"
          removeStyleLinkTypeAttributes: true, // 删除<style>和<link>的type="text/css"
          minifyJS: false, // 压缩页面JS
          minifyCSS: true // 压缩页面CSS
        }))
        .pipe(gulp.dest(aimPath))
    }
  },
entry}

js  ,以前的js 引入了很多其他的jq 插件,不好用webpack 打包,这里只是合并压缩:

const { aimPath } = require('./config')

const replaceEntry=[
  './src/pages/*.htm'
]

module.exports = (entry,name) => {
  return gulp => {
    return () => {
      return gulp.src(entry, { base: './src' })
        // .pipe(uglify())
        .pipe(concat(`${name}.js`))
        .pipe(dev('js'))
        // .pipe(named())
        // .pipe(webpack({config: webpackConfig}))
        .pipe(rename({ suffix: '.min' }))
        .pipe(md5(10, replaceEntry))
        .pipe(gulp.dest(aimPath+"resources/js/"))
    }
  }
}

css 和js 类似 合并压缩

var base64 = require('gulp-base64')
// const entry = ['./src/static/*.less']
const { aimPath } = require('./config')
const dev=require('./devOrPro')

const html = require('./html')

module.exports = (entry, name) => {
  return gulp => {
    return () => {
      return gulp.src(entry, { base: './src' })
        .pipe(less({
        }))
        .pipe(cleanCSS({
          advanced: false,//类型:Boolean 默认:true [是否开启高级优化(合并选择器等)]
          compatibility: 'ie7',//保留ie7及以下兼容写法 类型:String 默认:''or'*' [启用兼容模式; 'ie7':IE7兼容模式,'ie8':IE8兼容模式,'*':IE9+兼容模式]
          keepBreaks: true,//类型:Boolean 默认:false [是否保留换行]
          keepSpecialComments: '*',//保留所有特殊前缀 当你用autoprefixer生成的浏览器前缀,如果不加这个参数,有可能将会删除
        }))
        .pipe(base64({

          // baseDir: './src/',
          // extensions: ['svg', 'png', /\.jpg#datauri$/i],
          // exclude:    [/\.server\.(com|net)\/dynamic\//, '--live.jpg'],
          maxImageSize: 8 * 1024*1024, // bytes
          debug: true
        }))
        .pipe(postcss([
          autoprefixer({ browsers: ['last 1 version'] }),
          cssnano()
        ]))
        .pipe(concat(`${name}.css`))
        .pipe(dev('css'))
        .pipe(rename({ suffix: '.min' }))   //rename
        .pipe(md5(10, html.entry))
        .pipe(gulp.dest(aimPath+"/resources/css"))
    }
  }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值