gulp打包构建

首先安装node.js

安装地址nodejs.org

把npm指向淘宝的cnpm

控制台输入

npm install -g cnpm --registry=https://registry.npm.taobao.org

想看具体的点这里 http://npm.taobao.org/

接着先来说传统的项目 比如现在的目录结构是这样 

里面的详情是这样滴

大家可以看到有个gulpfile.js 文件和package.json文件

先不管gulpfile.js这个东西

先来看package.json

package的字面意思 是 安装包的意思

顾名思义 也就是gulp的配置文件

就是说 你要干活了。干活前你应该先干嘛呢

先找人啊 。人都没在干毛线活 对吧

所以这个就是gulp干活前要找的小弟们,也就是配置文件

怎么建立这个文件呢 1.可以手动建立 要是你不嫌麻烦的话

2. 控制台进入该目录 运行cnpm init命令

然后根据提示输入后就变成这样了

   

下一步改安装插件了

怎么安装呢

就像这样 

安装格式是上面一行,上面只是演示格式

具体的安装是下面一行

那么具体要安装哪些插件呢。这个能下慢慢介绍

比如刚才那个安装完成就变成这样了

对吧 插件自动写上去了

然后介绍下插件

这个是传统的打包

这个是requireJs项目的打包 

看完这个该去看看之前的gulfile.js文件时干嘛的了

老样子 先看简单的传统打包

在之前我们先看下这个gulp-load-plugins这个插件的作用

这个是有很多插件依赖   

这是只有一个gulp插件和gulp-load-plugins插件

估计大家都知道了  gulp-load-plugins的作用 他会自动去寻找这个js内所需要依赖的插件 并自动加载进来,大大减少了代码量

不过需要注意的是在调用命令的时候需要加上之前赋值的变量名 。

 1 /**
 2  * gulpfile.js
 3  * @author Huwj
 4  * Created 2015-07-31 10:09.
 5  */
 6
 7 "use strict";
 8 var gulp = require(‘gulp‘),
 9     gulpLoadPlugin = require(‘gulp-load-plugins‘),
10     plugins = gulpLoadPlugin(),
11     //这里是一个配置的参数
12     config = {
13         path: ‘./‘,
14         src: ‘src‘,  //输入
15         dist: ‘build‘,  //输出
16         dev: ‘http://dev.5173cdn.com/newmobile/src‘,
17         img01: ‘http://img01.5173cdn.com/newmobile/build/1.00‘
18     },
19     ugJs = function ugJs(type) {
20         var type = type || null;
21         return gulp.src(config.src + ‘/js/*.js‘)  //gulp去读取文件
22             .pipe(plugins.replace(config.dev, config.img01))  //js替换
23             .pipe(plugins.jshint())   //js校验
24             .pipe(plugins.jshint.reporter())   //js校验
25             .pipe(plugins.uglify())   //js压缩
26             .pipe(gulp.dest(config.dist + ‘/1.00/js/‘)) //输出
27             .on(‘end‘, function () {    //和JQ的on方法类似
28                 if ( type ){
29                     ugCss(true);
30                 }
31             });
32     },
33     ugCss = function ugCss(type) {
34         var type = type || null;
35         return gulp.src(config.src + ‘/css/*.css‘)
36             .pipe(plugins.replace(config.dev, config.img01))
37             .pipe(plugins.minifyCss())
38             .pipe(gulp.dest(config.dist + ‘/1.00/css/‘))
39             .on(‘end‘, function () {
40                 if (type){
41                     ugImage(true);
42                 }
43             });
44     },
45     ugImage = function ugImage(type) {
46         var type = type || null;
47         return gulp.src(config.src + ‘/images/*‘)
48             .pipe(plugins.imagemin({
49                 //optimizationLevel :3,  //默认压缩等级
50                 progressive: true,  //对于jpg的图片压缩
51                 svgoPlugins: [{removeViewBox: false}],  //对于svg的图片压缩
52                 use: []  //使用额外的插件
53             }))
54             .pipe(gulp.dest(config.dist + ‘/1.00/images/‘))
55             .on(‘end‘, function () {
56                 if (type){
57                     ugHtml();
58                 }
59             });
60     },
61     ugHtml = function () {
62         return gulp.src(config.src + ‘/html/*.html‘)
63             .pipe(plugins.replace(config.dev, config.img01))
64             .pipe(gulp.dest(config.dist + ‘/1.00/html/‘));
65     };
66
67 //注册css打包
68 gulp.task(‘js‘, function () {
69     ugJs();
70 });
71
72 //注册js打包
73 gulp.task(‘css‘, function () {
74     ugCss();
75 });
76
77 //注册image压缩
78 gulp.task(‘img‘, function () {
79     ugImage();
80 });
81
82 //html替换
83 gulp.task(‘html‘, function () {
84     ugHtml();
85 });
86
87 //全套
88 gulp.task(‘all‘, function () {  //先看这里就是运行ugJs这个方法
89     ugJs(true);
90 });
91
92 gulp.task(‘copy‘, function () {
93     return gulp.src([‘./src/*‘, ‘./build/*‘])
94         .pipe(gulp.dest(‘../../tags/hybrid/‘));
95 });

传统项目打包

然后看一下稍微复杂的点requirejs打包

先看下项目结构

代码结构

时间: 2024-10-24 00:05:57

gulp打包构建的相关文章

gulp+webpack构建前端项目

本文将介绍如何利用gulp+webpack构建一个基本的前端项目.假设你已经安装了node环境并且会使用简单的命令行 1.gulp安装 (1)全局安装 npm install gulp -g (2)查看gulp是否安装成功 gulp -v (3)进入本地目录,新建gulpfile.js 2.安装gulp-webpack插件 基于gulp的插件非常多,建议大家查看npm官网https://www.npmjs.com (1)安装 webpack的用途主要是模块化+打包.安装敲入命令 npm inst

gulp进阶构建项目由浅入深

阅读目录 gulp基本安装和使用 gulp API介绍 Gulp.src(globs[,options]) gulp.dest(path[,options]) gulp.task(name[,deps],fn); gulp.watch(glob[,opts],tasks) gulp一些常用插件 gulp-rename(重命名) gulp-uglify(JS压缩) gulp-minify-css(css文件压缩) gulp-minify-html(html压缩) gulp-concat(JS文件合

gulp打包

gulp打包主要注重工作流程的构建. 一般先在package.json中添加需要的gulp插件,通过npm或者yarn安装,然后在gulpfile.js中写构建脚本. 主要用到的插件有: gulp-usemin: 根据html页面创建压缩html,css,js...的构建任务: gulp-htmlmin: 压缩html gulp-clean-css: 压缩css gulp-uglity: 压缩js gulp-concat: 合并文件 gulp-template-compile: 转换html模板

Zepto自定义模块打包构建

文章转自 http://www.chengxuyuans.com/web_technology/zeptojs-build.html zepto.js 是个好东西,遵循 jQuery API,但比 jQuery 小巧很多,很多移动web开发者都用它 不过,官网下载的默认构建包仅包含 zepto event ajax form ie 这5个模块(版本为1.1.6) 连触摸事件 touch 模块都没,还有能让 ajax 提供 promise 接口的 callbacks 和 deferred 模块也没

使用gulp+Browserify构建React应用

<一>.使用gulp构建React应用 一.React项目结构 .gulpfile.js ./src .index.html /js .App.js .Child.js .Parent.js 二.代码 index.html 和 js目录下的三个jsx文件如下 //index.html <!DOCTYPE html> <html> <head></head> <body> <div id="app">&l

gulp前端构建工具的搭建

我的机器: 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:08 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 1.安装nodejs ~$ wget https://nodejs.org/dist/v6.2.0/node-v6.2.0-linux-x64.tar.gz ~$ tar -zxvf node-v6.2.0-linux-x64.tar.gz ~$ sudo mv node-v6.2.0-linux-x

spring could Windows打包构建docker镜像到linux

一.工程结构 二.Pom配置 <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> <!-- tag::plugin[] --> <plugin> <groupId>co

Webpack打包构建太慢了?试试几个方法

Webpack是个很流行的打包工具,但其打包速度却一直被吐槽着 如果不用上一些打包的优化建议,单单打包两三个文件就能花上好几秒,放上几十个入口文件依赖几百上千个包的话,几分钟十几分钟妥妥的 本文整理了常见的一些方法,部分使用之后就看到了很大改善,部分没什么明显的变化,也可能是项目规模还不够大,先记录一下方法也好 一.使用监听模式或热更新热替换 webpack支持监听模式,此时需要重新编译时就可以进行增量构建,增量构建是很快的,基本不到一秒或几秒之内就能重新编译好 注意区分一下开发环境和线上环境,

做一个合格的前端,gulp自动化构建工具入门教程

我的新作观点网http://www.guandn.com (观点网是一个猎获新奇.收获知识.重在独立思考的网站),它前端js.css的压缩.合并.md5命名等就使用了gulp自动化构建技术,gulp很小巧使用起来很舒服.ps:接下来我会逐一开源观点网开发过程中的前后端技术,如:lucene全文索引.自定义富文本编辑器.图片上传压缩水印等等. 一.什么是gulp gulp是一个自动化构建工具,开发者可以使用它在项目开发过程中自动执行常见任务.例如:css.js的合并与压缩(减少http请求,缩小文