layui 构建工具gulp打包LayuiAdmin

项目可采用 gulp 构建,gulpfile.js 是任务脚本,package.json 是任务配置文件
step1:确保你的电脑已经安装好了 Node.js
step2: 命令行安装 gulp:npm install gulp -g
step3:切换到该项目根目录(即 gulpfile.js 所在目录),命令行安装任务所依赖的包:npm install
安装完成后,即可直接执行命令:gulp
即可完成 src 到 dist 目录的构建

注意点:node版本升级到10以后,gulp需要升级到4以上版本

最简单处理方式:
1、在package.json中设置gulp版本4.0.2

 2、gulp升级到4.0后,新增语法gulp.parallel和 gulp.series,需要修改对应语法:

对应代码如下:

/*!
 layuiAdmin pro 构建
*/

var pkg = require('./package.json');
var inds = pkg.independents;

var gulp = require('gulp');
var uglify = require('gulp-uglify');
var minify = require('gulp-minify-css');
var concat = require('gulp-concat');
var rename = require('gulp-rename');
var replace = require('gulp-replace');
var header = require('gulp-header');
var del = require('del');
var gulpif = require('gulp-if');
var minimist = require('minimist');

//获取参数
var argv = require('minimist')(process.argv.slice(2), {
  default: {
    ver: 'all' 
  }
})

//注释
,note = [
  // '/** <%= pkg.name %>-v<%= pkg.version %> <%= pkg.license %> License */\n <%= js %>'
  ,''
  ,{pkg: pkg, js: ';'}
]

,destDir = './dist' //构建的目标目录
,releaseDir = '../pack/layuiAdmin.pack/'+ pkg.name +'-v' + pkg.version //发行版本目录

//任务
,task = {
  //压缩 JS
  minjs: function(){
    var src = [
      './src/**/*.js'
      ,'!./src/config.js'
      ,'!./src/lib/extend/**/*.js'
    ];
    
    return gulp.src(src).pipe(uglify({
      output: {
        ascii_only: true //escape Unicode characters in strings and regexps
      }
    }))
     .pipe(header.apply(null, note))
    .pipe(gulp.dest(destDir));
  }
  
  //压缩 CSS
  ,mincss: function(){
    var src = [
      './src/**/*.css'
    ]
     ,noteNew = JSON.parse(JSON.stringify(note));
     
     
    noteNew[1].js = '';
    
    return gulp.src(src).pipe(minify({
      compatibility: 'ie7'
    })).pipe(header.apply(null, noteNew))
    .pipe(gulp.dest(destDir));
  }
  
  //复制文件夹
  ,mv: function(){    
    gulp.src('./src/config.js')
    .pipe(gulp.dest(destDir));
    
    gulp.src('./src/lib/extend/**/*')
    .pipe(gulp.dest(destDir + '/lib/extend'));
    
    gulp.src('./src/style/res/**/*')
    .pipe(gulp.dest(destDir + '/style/res'));
    
    return gulp.src('./src/views/**/*')
    .pipe(gulp.dest(destDir + '/views'));
  }
};

gulp.task('minjs', task.minjs);
gulp.task('mincss', task.mincss);
gulp.task('mv', task.mv);

//清理
gulp.task('clear', function(cb) {
  return del(['./dist/*'], cb);
});

//构建核心源文件(发行版) ['htmlmin', 'cssmin', 'jsmin', 'copy']
// gulp.task('default',gulp.series('clear','minjs', 'mincss', 'mv'));

gulp.task('default', gulp.series('clear','minjs', 'mincss', 'mv'));


/**
 * 开发模式
 */

//清理 src
gulp.task('clearSrc', function(cb) {
  return del(['./src/*'], cb);
});

//复制 src
gulp.task('src', gulp.series('clearSrc'), function(){
  return gulp.src('./dev-src/**/*')
  .pipe(gulp.dest('./src'));
});

//构建核心源文件(开发版)
gulp.task('dev', gulp.series('clear', 'src'), function(){ //命令:gulp dev
  for(var key in task){
    task[key]();
  }
});

//发行文件
gulp.task('release', function(){ //命令:gulp && gulp release

  //复制核心文件
  gulp.src('./dist/**/*')
  .pipe(gulp.dest(releaseDir + '/dist'));

  gulp.src('./src/**/*')
  .pipe(gulp.dest(releaseDir + '/src'));

  //复制 json
  gulp.src('./dev/json/**/*')
  .pipe(gulp.dest('./json'))
  .pipe(gulp.dest('./start/json'))
  .pipe(gulp.dest(releaseDir + '/start/json'));

  //复制并转义宿主页面
  gulp.src('./dev/index.html')
    .pipe(replace(/\<\!-- clear s --\>([\s\S]*?)\<\!-- clear e --\>/, ''))
    .pipe(replace('//local.res.layui.com/layui/src', 'layui'))
    .pipe(replace("base: '../dev-src/'", "base: '../dist/'"))
    .pipe(replace('@@version@@', pkg.version))
  .pipe(gulp.dest('./start'))
  .pipe(gulp.dest(releaseDir + '/start'));

  //复制帮助文件
  gulp.src([
    './帮助/*'
  ]).pipe(gulp.dest(releaseDir));


  //复制 gulpfile
  gulp.src([
    'gulpfile.js'
    ,'package.json'
  ]).pipe(gulp.dest(releaseDir));

  //复制 layui
  return gulp.src('../../../../res/layui/rc/**/*')
  .pipe(gulp.dest('./start/layui'))
  .pipe(gulp.dest(releaseDir + '/start/layui'))
});

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值