Gulp 插件及其使用
前端现在有很多的自动打包工具,各有优缺点,而gulp作为其中的一员,也有着很受人们的青睐,简单粗暴,然而gulp本身并没有提供很多的API,真正的一些工作则是靠着插件完成的,本文简单介绍一些常用的gulp插件及其使用。
//文件包含 //学习链接 https://www.npmjs.com/package/gulp-file-include var fileInclude = require('gulp-file-include'); //示例: var fileinclude = require('gulp-file-include'), gulp = require('gulp'); //读取index.html并替换其中还@@include,模板可以传变量,详情见以上链接进行学习 gulp.task('fileinclude', function() { gulp.src(['index.html']) .pipe(fileinclude({ prefix: '@@', basepath: '@file' })) .pipe(gulp.dest('./')); }); //压缩js插件 var uglify = require('gulp-uglify'); //示例: /** * 对js文件进行处理:压缩 注意:requirejs中变量名称不能在压缩时被修改,否则会导致requirejs失效 */ gulp.task('dealJs', [ "clean" ], function() { gulp.src('src/**/*.js').pipe(uglify({ mangle : false // 类型:Boolean 默认:true 是否修改变量名 })) // 压缩js .pipe(gulp.dest('')); }); //压缩Css文件 var minifyCss = require('gulp-minify-css'); //示例/** * 对js文件进行处理:压缩 */ gulp.task('dealCss', [ "clean" ], function() { gulp.src('src/**/*.css').pipe(minifyCss()) // 压缩css .pipe(gulp.dest('')); }); //压缩html var htmlmin = require('gulp-htmlmin'); //示例: //链接:http://www.ydcss.com/archives/20 var gulp = require('gulp'), htmlmin = require('gulp-htmlmin'); gulp.task('testHtmlmin', function () { var options = { removeComments: true,//清除HTML注释 collapseWhitespace: true,//压缩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: true,//压缩页面JS minifyCSS: true//压缩页面CSS }; gulp.src('src/html/*.html') .pipe(htmlmin(options)) .pipe(gulp.dest('dist/html')); }); //删除文件或文件夹 var del = require('del'); //使用示例: var gulp = require('gulp'); var del = require('del'); gulp.task('clean:mobile', function (cb) { del([ 'dist/report.csv', // 这里我们使用一个通配模式来匹配 `mobile` 文件夹中的所有东西 'dist/mobile/**/*', // 我们不希望删掉这个文件,所以我们取反这个匹配模式 '!dist/mobile/deploy.json' ], cb); }); gulp.task('default', ['clean:mobile']); //gulp-replace ,可以替换指定格式的字符到指定字符,例如: var replace = require('gulp-replace'); // 遍历所有的词条,替换文件流中存在的词条 for (var i = 0; i < words.length; i++) { stream = stream.pipe(replace("${I18N[" + words[i] + "]}", getEnWord(words[i]))); } 就会把${I18N{admin.test}}这个格式的的内容替换成指定的字符
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?