首页 > 其他分享 >layui 构建工具gulp打包LayuiAdmin

layui 构建工具gulp打包LayuiAdmin

时间:2024-06-17 09:54:26浏览次数:21  
标签:pipe LayuiAdmin src dest layui gulp task var

https://blog.csdn.net/u010334503/article/details/128762800

项目可采用 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以上版本

/*!
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'))
});

 

标签:pipe,LayuiAdmin,src,dest,layui,gulp,task,var
From: https://www.cnblogs.com/0n355/p/18251808

相关文章

  • webman admin 中的 Layui 使用说明
    目录Layui背景生命周期底层方法通用Common模块化相关Modular事件Event模块系统入门Layui模块系统与vue模块的区别理解layui.use代码解释Layui背景Layui是一个上古框架,jQuery时代末期Vue初期的作品,早期因为layout.js弹出层起家,在作者的努力下,成体系的开发了一套常......
  • gulp的使用
     在发布官网时,会因为本地浏览器的缓存,导致一些样式不会及时更新,这时可以使用gulp对静态资源进行打包,在静态资源文件后面添加版本号或者MD5后缀,从而使浏览器请求新的资源,解决缓存的问题,此外gulp可以处理理常见任务,压缩静态资源文件等,下面介绍gulp的使用方法。1.gulp是什么gu......
  • ASP.NET MVC使用Layui选择多图片上传
    前言多图上传在一些特殊的需求中我们经常会遇到,其实多图上传的原理大家都有各自的见解。对于Layui多图上传和我之前所说的通过js获取文本框中的文件数组遍历提交的原理一样,只不过是Layui中的upload.render方法已经帮我们封装好了,我们只管调用即可,也就是说你选中了几张图片,那么......
  • ✨✨使用jq+layui的layer+laytpl实现横屏查看功能✨✨
    使用jq+layui的layer+laytpl实现横屏查看功能✨一、实现功能......
  • layui laydate日期时间范围,时间默认设定为23:59:59
    在Layui中,如果你想设置日期时间选择器(datetime)的默认结束时间为当天的23:59:59,你可以使用如下代码(红色部分):laydate.render({elem:'#test10',type:'datetime',range:true,max:'{:date("Y-......
  • layui table tr a标签倒计时 操作 刷新以后继续倒计时
    结合localStorage//开始计时startTimers=function(rowId,times){varbuutons=$('#table-admin').next().find('tr[data-index="'+rowId+'"]').find("a[lay-event='send_datas']");......
  • layui table 选项卡刷新后依旧保留上一个打开的索引
    $(".layui-tab-titleli").click(function(){varmy_clue_detail_tab_index=$(this).index();sessionStorage.setItem("my_clue_detail_tab_index",my_clue_detail_tab_index);});$(function(){vargetPicTabN......
  • Layui的进度条使用
    我用的是第二种上代码首先引入layui的css和jshtml部分 <divclass="layui-progress"lay-showpercent="true"style="margin-top:10px"lay-filter="demo-filter-progress"><divclass="layui......
  • layui 事件管理
    //config其实就是每个layui实例的cache属性//自定义模块事件Layui.prototype.onevent=function(modName,events,callback){if(typeofmodName!=="string"||typeofcallback!=="function")returnthis;//解释:相当于注册事件回调的功能和执行事......
  • layUI select下拉框动态赋值和设置选中值
    layUIselect下拉框动态赋值和设置选中值<script>layui.use(['form','layedit','laydate'],function(){var$=layui.jquery;$.ajax({url:'../api/SysType/GetArticleType?parentId=1',//json文......