用gulp打包发布项目
来源:互联网 发布:安信安翼手机炒股软件 编辑:程序博客网 时间:2024/05/17 01:57
在发布之前还可以做代码优化:
1.压缩
2.合并
3.增加版本号
首先,手动打包发布的网站比如:https://javascript-minifier.com
显然,手动打包麻烦费时费力的,那自从node.js出来以后,方便快捷,自动化处理。
打包的主流3个工具:
1.Grunt 自动化构建工具
2.gulp 自动化构建工具
3.webpack 静态资源打包工具
这里主要先介绍用gulp工具打包,中文网址: http://www.gulpjs.com.cn/
易于使用
通过代码优于配置的策略,Gulp 让简单的任务简单,复杂的任务可管理。
构建快速
利用 Node.js 流的威力,你可以快速构建项目并减少频繁的 IO 操作。
插件高质
Gulp 严格的插件指南确保插件如你期望的那样简洁高质得工作。
易于学习
通过最少的 API,掌握 Gulp 毫不费力,构建工作尽在掌握:如同一系列流管道。
先安装nodejs,然后在npm命令行里输入 npm init
生成package.json文件,里面存储一些依赖项,下面是安装:
运行 gulp -v
,出现版本号,代表安装成功。
gulpfile.js 存放想要执行的任务。
首先声明好要依赖的加载项,var gulp=require('gulp')
gulpfile.js 中定义任务,
gulp.task('task-name',function(){});
接下来安装gulp的各种插件,
npm install gulp-rev gulp-rev-replace gulp-useref gulp-filter gulp-uglify gulp-csso --save-dev
修改gulpfile.js文件
var gulp=require('gulp');var rev=require('gulp-rev');/*给文件用哈希码添加版本号*/var revReplace=require('gulp-rev-replace');/*更新引用*/var useref=require('gulp-useref');/*合并文件*/var filter=require('gulp-filter');/*过滤器:筛选,恢复*/var uglify=require('gulp-uglify');/*压缩js*/var csso=require('gulp-csso');/*压缩css*/gulp.task('task-name',function(){var jsFilter=filter('**/*.js',{restore:true});var cssFilter=filter('**/*.css',{restore:true});var indexHtmlFilter=filter(['**/*','!**/index.html'],{restore:true});return gulp.src('src/html')/*需要处理的文件*/.pipe(useref())/*处理注释压缩*/.pipe(jsFilter)/*筛选js文件*/.pipe(uglify())/*压缩js文件*/.pipe(jsFilter.restore)/*放回流里*/.pipe(cssFilter)/*筛选css文件*/.pipe(csso())/*压缩css文件*/.pipe(cssFilter.restore)/*放回流里*/.pipe(indexHtmlFilter)/*筛选html文件*/.pipe(rev())/*生成哈希版本号*/.pipe(indexHtmlFilter.restore)/*放回流里*/.pipe(revReplace())/*更新index引用*/.pipe(gulp.dest('dist'));/*文件流放到dist目录下*/});
执行 gulp task-name
gulp-useref插件的使用:在html中加入注释打包部分的代码
这里只实现了gulp的打包压缩和版本文件名的功能,其实,还有很多更厉害的功能
比如
gulp-watch监听文件的改变,自动执行任务,
gulp-postcss和 autoprefixer 添加浏览器的前缀,对css文件进行处理,
gulp-concat把多个文件直接合并成一个文件,
gulp-responsive实现图片响应式
等等
- 用gulp打包发布项目
- gulp项目打包
- gulp基于seaJs模块化项目打包实践
- nodejs-gulp 打包前端项目代码
- gulp打包seajs,用gulp-cmd-pack打包seajs模块
- Maven 项目打包发布
- Java项目打包发布
- Maven 项目打包发布
- Maven 项目打包发布
- Java项目打包发布
- 项目打包发布教程
- linux项目构件打包发布
- Java 项目打包并且发布
- linux 项目打包发布(autoconf)
- qt项目的打包发布
- python项目打包发布总结
- java项目打包并发布
- springboot 项目打包发布总结
- Android App优化之性能分析工具
- OpenSessionInViewFilter原理以及为什么要用OpenSessionInViewFilter
- js 组件的开发步骤
- 第三周作业(图论--BFS与DFS相关)
- 矩阵快速幂模板
- 用gulp打包发布项目
- Cartographer理论及实现浅析--泡泡机器人原创专栏
- CAS 5.0.3.1部署
- C#点击按钮时label可见,再次点击label不可见
- Docker
- 图片上传
- Spring 框架
- Android应用开发-快速入门
- 条款27尽量少做转型动作