gulp的安装和使用方法

1先是有node为前提的,

2安装淘宝镜像

 2.1因为很多npm包都是国外的,所以安装起来很慢,所以我们可以利用淘宝的镜像服务器来进行安装后续的包,速度和成功率会高很多。 
 所以首先打开cmd,输入指令: npm --registry=https://registry.npm.taobao.org install -g cnpm

3是安装gulp

首先,新建一个用来项目开发的空文件夹,然后再命令行工具里cd到文件夹中(有git的童鞋在文件夹里直接右键 git bash here也是Ok的) 
   然后执行以下 npm init,会发现文件夹中多出一个 
   然后在命令行中执行 npm init,效果如下图,一路无脑回车即可 
 
   执行完成后你会发现原本的空文件夹里多出了一个叫package.json的文件。说明执行成功啦。 
  完成后接着执行指令: 
  npm install --save-dev gulp 
注意:1.命令行工具一定要进入到这个用来项目开发的空文件夹 
   2.这里不要使用cnpm,使用npm即可(亲身经历,用cnpm之后运行gulp的时候会报错,大概是cnpm的某些包不全)

  接下来需要等待一会儿,完成后,需要去文件夹的根目录中,新建一个名为gulpfile.js的javascript文件,写入内容如下:

1 var gulp = require('gulp');
2
3 gulp.task('default', function() {
4 // 将你的默认的任务代码放在这
5 });

最后在命令行里执行指令: glup 回车 
 
效果如上图,则说明glup已经成功安装在项目中啦~

----以上引用的是http://www.cnblogs.com/YuuyaRin/p/6159809.html

3.1--save-dev和--save的区别

  • 把gulp包安装到node_modules目录中
  • 在package.json的dependencies属性下添加gulp
  • 之后运行npm install命令时,自动安装gulp到node_modules目录中
  • --save---之后运行npm install --production或者注明NODE_ENV变量值为production时,自动安装gulp 到node_modules目录中(开发完后需要用到依赖包,如jquery等)
  • --save-dev--之后运行npm install --production或者注明NODE_ENV变量值为production时,不自动安装gulp 到node_modules目录中(发布后用不到它,而只是在我们开发才用到它

4使用gulp压缩和合并js文件

在之前建立的项目中写入,在根目录新建js文件夹,并在文件夹中新建两个js文件,代码如下:

index.js:

  1. var index={};
  2. index={
  3. test:function(argument){
  4. console.log('test');
  5. }
  6. }
  7. index.test();

main.js:

  1. var main = {};
  2. main.test=function(argument){
  3. console.log("main test");
  4. }
  5. main.test();

在根目录新建文件夹build,并在build里新建一个空的js文件:all.min.js

在根目录下新建index.html ,在其中引用build下的all.min.js。

index.html:

  1. <script type="text/javascript" src="build/all.min.js"></script>

接下来编辑gulpfile.js文件,来告诉gulp我们要把index.js,main.js合并起来压缩再写入all.min.js中

gulpfile.js:

  1. var gulp = require('gulp');//gulp自身
  2. var uglify= require('gulp-uglify');//<span style="font-family: Arial, Helvetica, sans-serif;">引入压缩组件</span>
  3. var concat = require('gulp-concat');//<span style="font-family: Arial, Helvetica, sans-serif;">引入合并组建</span>
  4. var paths = {
  5. scripts:['js/index.js','js/main.js']  //['js/*.js','!js/changDateFormat.js']排除所有文件中的changDateFormat.js文件
  6. } //定义要操作的文件路径
  7. gulp.task('default', function() {   //当这里"default"写成其他的名字(如:asd)时,在运行时就余需要用 gulp asd
  8. gulp.src(paths.script)//找到项目下paths变量所定义的script文件
  9. .pipe(uglify())//压缩
  10. .pipe(rename({ suffix: "-min",prefix:"bon-",extname:".md"}))//suffix加后缀,prefix加前缀,extname修改文件格式(是js还是html等)
  11. .pipe(concat('all.min.js'))//输入到all.min.js中
  12. .pipe(gulp.dest('build'));//指定目录
  13. });

tips:gulp的执行流程采用了流式操作,每一个pipe()可以理解成,上一个操作的输出,就是下一个操作的输入,比如uglify()压缩后输出的,就是concat要输入到文件中的,而concat输出的文件,是gulp.dest要加入的目录中的,可以理解成每部操作都return了下一步要使用的东西。

最终目录结构如下:

接下来就可以在命令行工具中cd到项目的根目录中执行gulp指令了。

此时也许会出现 Cannot find module 'gulp-uglify'这样的报错,是因为gulpfile所require的gulp-uglify和gulp-concat插件并不存在,所以可以利用npm在项目中装入即可:

npm install --save-dev gulp-uglify    回车

npm install --save-dev gulp-concat   回车

可同时下载gulp-uglify和gulp-concat(用"空格"将两个文件隔开就好)npm install --save-dev gulp-uglify gulp-concat

4.1引入组件

var gulp = require("gulp");//导入glup
var sass = require("gulp-sass");//拷贝并编译scss
var server = require("gulp-connect");//建立服务器
var concat = require("gulp-concat");//合并js文件
var uglify = require("gulp-uglify");//压缩js文件
var minifyCss = require("gulp-minify-css");压缩css
var imagemin = require("gulp-imagemin");压缩图片
var rename = require("gulp-rename");//文件重命名
var rev = require("gulp-rev");//给静态资源文件名添加一个哈希值后缀
var revCollector = require("gulp-rev-collector");//自动添加版本号
var autoprefixer = require("gulp-autoprefixer");//css添加浏览器后缀
var htmlmin = require("gulp-htmlmin");//html页面进行压缩

 

安装完成后再次执行gulp指令,成功后,可以查看一下我们原本空的all.min.js文件,可以看到main.js和index.js已经在all.min.js中压缩合并了

  1. var index={};index={test:function(e){console.log("test")}},index.test();
  2. var main={};main.test=function(n){console.log("main test")},main.test();

然后运行一下我们的index.html,打开浏览器控制台,会发现两个js的内容成功输出:

说明gulp成功执行了JS文件的合并与压缩的操作。

 

gulp的安装和配置的更多相关文章

  1. 【gulp】Gulp的安装和配置 及 系列插件

    注意:要安装俩次gulp(全局和本地):全局安装gulp是为了执行gulp任务,本地安装gulp则是为了调用gulp插件的功能. 之前由大牛帮忙配置的gulp来用.今天时间充裕,就和小伙伴一起动手配置 ...

  2. 前端构建工具之gulp的安装和配置

    在选择构建工具时,看到更多人推荐gulp,从此入了gulp的坑- 一.安装node环境 百度谷歌一下就有了,在终端中分别输入 node -v 和 npm -v,若显示node和npm的版本号则说明no ...

  3. Gulp的安装与配置

    http://blog.csdn.net/itlsx/article/details/49981459

  4. 学习安装并配置前端自动化工具Gulp

    Gulp和所有Gulp插件都是基于nodeJs来运行的,因此在你的电脑上需要安装nodeJs,安装过程请移驾安装并配置前端自动化工具--grunt.安装完成后,通过运行cmd进入DOS命令窗口,如图: ...

  5. 安装并配置前端自动化工具-gulp

    由于现在前端自动化已经很有必要了,所以我今天死皮烂脸的找了2位前端大咖帮助我安装和配置gulp,讲真,这一步步弄下来直到安装配置成功,到现在还是迷迷糊糊,不过我还是把这些步骤给记录下来,以防下次不记得 ...

  6. nvm安装和配置详细教程

    nvm是nodejs的版本管理工具,为什么要用nvm,你能百度到这篇文章相比是遇到不得不用的原因了,我们知道nodejs官方更新的速度非常快,有时候业务需要需要用某某版本,如果用的是msi安装,虽然安 ...

  7. 第210天:node、nvm、npm和gulp的安装和使用详解

    一.node 1.什么是node? 它不是JS文件,也不是JS框架,而是Server side JavaScript runtime,当服务端的一个JS文件运行时,会被NODE拦截,在NODE中运行J ...

  8. gulp的安装和使用

    安装nodejs -> 全局安装gulp -> 项目安装gulp以及gulp插件 -> 配置gulpfile.js -> 运行任务 1.去nodejs官网安装nodejs 2. ...

  9. gulp的安装以及less插件安装与使用

    1.安装node.js 下载地址:http://nodejs.cn/download/ 这时我们输入 node -v  以及  npm -v  检查是否安装成功. 2.为了提高后续使用的快速,我们安装 ...

随机推荐

  1. 关于错误处理程序中【return】的用法

    先让俺这位新人帮各位有幸游览到我博客文章的叔叔阿姨哥哥姐姐们解释一下什么是错误处理?即:当程序发生错误时,保证程序不会异常中断的机制. 那么为什么程序中会有错误处理呢?像我们通常无论是玩手机或者玩游戏 ...

  2. java图片二进制相互转换

    import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOu ...

  3. javascript数组遍历for与for in区别详解

    js中遍历数组的有两种方式 复制代码代码如下: var array=['a']//标准的for循环for(var i=1;i<array.length;i++){    alert(array[ ...

  4. PHP heredoc 用法2

    参考网上的一个heredoc php模板实现的简单代码:index.php文件: <?php function template($template,$EXT ='htm') { $path = ...

  5. 【题解】Journeys(线段树优化连边)

    [#3073. Pa2011]Journeys (线段树优化连边) 这张图太直观了,直接讲透了线段树优化连边的原理和正确性. 考虑建立两颗线段树,一颗是外向树,一颗是内向树,相当于网络流建模一样,我们 ...

  6. (4.11)sql server内存使用

    一些内存使用错误理解   开篇小感悟 在实际的场景中会遇到各种奇怪的问题,为什么会感觉到奇怪,因为没有理论支撑的东西才感觉到奇怪,SQL Server自己管理内存,我们可以干预的方式也很少,所以日常很 ...

  7. github 上 机器学习 的库推荐列表

    awesome-machine-learning: https://github.com/josephmisiti/awesome-machine-learning

  8. C# Ajax 技术

    Ajax 是 Asynchronous JavaScript and XML(以及 DHTML 等)的缩写.下面是 Ajax 应用程序所用到的基本技术:• HTML 用于建立 Web 表单并确定应用程 ...

  9. FTP主动连接与被动连接

    FTP(File Transfer Protocol, FTP)是TCP/IP网络上两台计算机传送文件的协议,应用层的协议,它基于传输层, FTP是一个8位的客户端-服务器协议,能操作任何类型的文件而 ...

  10. Python 模块续 configparser、shutil、XML、paramiko、系统命令、

    一.configparse # 注释1 ; 注释2 [section1] # 节点 k1 = v1 # 值 k2:v2 # 值 [section2] # 节点 k1 = v1 # 值 1.获取所有节点 ...