layui-admin 使用gulp打包压缩,拿来即用

本文详细介绍了如何使用gulp对layui-admin进行打包压缩。首先,介绍了layui-admin的目录结构,然后逐步讲解了安装node.js、设置npm镜像、创建package.json和gulpfile.js文件的过程。接着,在终端通过命令安装依赖并运行gulp。最后,当start文件夹下的index.html在修改为dist后能正常显示,即标志着打包成功。

首先layui-admin的目录结构是这样的:src 和 start两个文件夹
在这里插入图片描述
一、下载和安装node: V10.22.1, 下载地址: 点击下载:https://nodejs.org/dist/v10.22.1/node-v10.22.1-x64.msi ,全部下一步。

二、安装镜像:打开终端,输入:npm install -g cnpm --registry=https://registry.npm.taobao.org
三、在根目录(start、src同级)新建 package.json 文件,内容如下:

{
  "name": "layui-gulp",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "del": "^2.2.2",
    "gulp": "^3.9.1",
    "gulp-imagemin": "^7.1.0",
    "gulp-minify-css": "^1.2.4",
    "gulp-uglify": "^3.0.1",
    "html-minifier": "^4.0.0"
  },
  "devDependencies": {}
}

四、在根目录 新建gulpfile.js文件,内容如下:


let gulp = require('gulp');
let uglify = require('gulp-uglify');        // js压缩
let minify = require('gulp-minify-css');    // css压缩
let del = require('del');                   // 删除文件
let minifier = require('html-minifier');    // html压缩
let imagemin = require('gulp-imagemin');    // 图片压缩

// 任务列表
let taskList = {
    // 压缩 html 文件
    minHtml: () => {
        gulp.src(['./src/**/*.html'])
            .on('data', function (file) {
                const buferFile = Buffer.from(minifier.minify(file.contents.toString(), {
                    includeAutoGeneratedTags: true, // 插入由HTML解析器生成的标记
                    removeAttributeQuotes: true,    // 在可能的情况下删除引号。
                    removeComments: true,           // 带HTML注释
                    removeRedundantAttributes: true,    // 当值匹配默认值时删除属性。
                    removeScriptTypeAttributes: true,   // 从脚本标签中删除type="text/javascript"。其他类型的属性值是完整的。
                    removeStyleLinkTypeAttributes: true,    // 从style和link标签中删除type="text/css"。其他类型的属性值是完整的。
                    sortClassName: true,    // 按频率分类样式类。
                    useShortDoctype: true,  // 用short (HTML5) doctype替换doctype
                    collapseWhitespace: true,   // 在显示之间不要留下任何空格:内联;崩溃时的元素
                    minifyJS: true,     // 在脚本元素和事件属性中缩小JavaScript
                    minifyCSS: true,    // 缩小CSS样式元素和样式属性
                }))
                return file.contents = buferFile
            })
            .pipe(gulp.dest('./dist'));
    },
    // 压缩 JS 文件
    minJs: () => {
        gulp.src(['./src/**/*.js', '!./src/lib/**/*.min.js']).pipe(uglify({
            output: {
                ascii_only: true // escape Unicode characters in strings and regexps
            }
        })).pipe(gulp.dest('./dist'));
    },
    // 压缩 css 文件
    minCss: () => {
        gulp.src(['./src/**/*.css']).pipe(minify({
            compatibility: 'ie7'
        })).pipe(gulp.dest('./dist'));
    },

    // 压缩图片资源
    minImg: () => {
        gulp.src(['./src/**/*.{png,jpg,gif,svg}']).pipe(imagemin({
                progressive: true, // 无损压缩JPG图片
                svgoPlugins: [{removeViewBox: false}], // 不移除svg的 viewbox 属性
            })).pipe(gulp.dest('./dist'));
    },

    // 复制组件可能所需的其他资源
    copyFile: () => {
        gulp.src(['./src/**/*.{mp3,json,eot,ttf,woff}']).pipe(gulp.dest('./dist'));
    }
};

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

//完整任务 gulp
gulp.task('default', ['clear'], function () {
    for (let key in taskList) {
        taskList[key]();
        console.log(key);
    }
});

五、在根目录位置的终端里(尽量不用idea自带的, 会看不到运行的进度。建议用cmd或powershell终端)输入: cnpm install
六、等待安装完,成功后会在根目录生成 node_modules 文件夹。接着输入:gulp
七、运行完成,将start文件夹下 index.html文件,src改成 dist, 浏览器中打开该html文件,页面正常显示,即成功。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值