1.创建项目

2.安装gulp

3.创建gulpfile.js文件

4.运行gulp

创建项目

-创建项目文件夹命名为firstGulp,并在firstGulp目录下运行 npm init 。npm init 会创建packjson文件,用于保存与项目有关的文件信息。创建步骤直接按回车跳过就好。

绿色部分需要我们根据项目自身情况手动输入 ,也可设置为空。红色部分是最终生成的内容。

-当然在最后,需要手动确认信息。确认之后,会在firstGulp项目目录下生成一个packjson.json文件

-确认之后,在firstGulp目录下生成的packjson.json文件如下。

{
"name": "none",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC"
}

2.安装gulp

在安装gulp之前,一起来梳理下几个问题。

2.1 什么是全局安装?

在项目目录中执行以下命令:

npm install gulp -g  或者 npm install gulp --global

全局环境下安装gulp,目的在于能够在命令行中使用gulp命令执行gulp。

通过npm  root -g 查看在全局环境下安装的路径:

/usr/local/lib/node_modules

2.2 什么是本地安装?

在项目目录中执行以下命令:

npm install gulp 或者 npm install gulp --save-dev 或者 npm install gulp --save
npm install gulp --save     自动把模块和版本号添加到packjson.json文件中的dependencies部分
npm install gulp --save-dev 自动把模块和版本号添加到packjson.json文件中的devdependencies部分

2.3 什么要先全局安装再本地安装?

-全局安装是为了可以通过命令行执行gulp命令。而且如果有多个项目都需要使用gulp,只需要全局安装一次即可。

-根据项目情况,我们一般会选取gulp插件通过require()的方式引入到gulpfile.js中,如果只使用全局安装,需要手动配置路径来解决模块引入问题。通过在本地安装gulp可以很好的解决这个问题。

-本地安装可以让每个项目都有一个独立的包,并且组织各个包之间的依赖。不受全局包的影响。换句话说,如果只在全局安转gulp,那么会造成多个项目共用同一个版本的gulp。

-方便项目的打包,复制等操作。

执行后 npm install gulp --save-dev packjson.json内容变换 如下:

{
    "name": "none",
    "version": "1.0.0",
    "description": "",
    "main": "index.js",
    "scripts": {
       "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "",
    "license": "ISC",
    "devDependencies": {
       "gulp": "^3.9.1"  //自动把模块和版本号添加到packjson.json文件中的devdependencies部分

}

}

 3.创建gulpfile.js文件

var gulp = require("gulp");//引入本地安装的 gulp模块

gulp.task("default",function(){//default 为默认任务名,这种情况只需要在命令行中输入 gulp即可。 如果有特定的taskName,需要在命令行中实行 gulp taskName
  console.log("hi, gulp")
})

-gulpfile.js将作为gulp的主文件负责执行在其中定义的任务。

4.运行gulp

gulp  =>输出 “hi,gulp”

[如何在Mac下使用gulp] 1.创建项目及安装gulp的更多相关文章

  1. 如何在Mac下配置Github和Bitbucket的SSH

    --- title: 如何在Mac下配置Github和Bitbucket的SSH date: 2017-12-23 21:10:30 tags: - Mac - Git - Github catego ...

  2. Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效。文件的删除

    内容是google的,测试有效,因为用revel打包的东西删除以后有这个循环bug Mac下关于——你不能拷贝项目“”,因为它的名称太长或包括的字符在目的宗卷上无效.文件的删除 关于这个问题我找到的一 ...

  3. Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime

    Mac下打开eclipse 始终提示 你需要安装Java SE 6 Runtime        周银辉 我的mac os 版本是10.9.2,  JDK配置得好好的,但打开eclipse时还是提示需 ...

  4. 解决Mac下Sequel Pro 1.1 连接 Homebrew安装Mysql5.7.8的问题 Sequel Pro 1.1 encountered an unexpected error

    解决Mac下Sequel Pro 1.1 连接 Homebrew安装Mysql5.7.8的问题 Sequel Pro encountered an unexpected error Sequel Pr ...

  5. Mac下Intellij IDea发布Web项目详解一

    Mac下Intellij IDea发布Web项目详解一 Mac下Intellij IDea发布Java Web项目(适合第一次配置Tomcat的家伙们)详解二 Mac下Intellij IDea发布J ...

  6. 【前端自动化】Gulp的使用(一):安装gulp

    作为一个.NET码农,在前端高速发展的时代,深深感觉自己那么点“前端”技术不够看,比如开发出来的js css等文件庞大,不便于管理,还记得以前的开发就是累加 html  css   jquery, 现 ...

  7. iOS问题处理:如何在Mac下显示Finder中的所有文件

    摘自:http://www.cnblogs.com/elfsundae/archive/2010/11/30/1892544.html 在Unix下工作,你可能需要处理一些“特殊“文件或文件夹,例如/ ...

  8. [Mac入门]如何在Mac下显示Finder中的所有文件

    在Unix下工作,你可能需要处理一些“特殊“文件或文件夹,例如/usr,/bin, etcf,或一些"dot files"(如.bash_profile).但是Linux/Unix ...

  9. 如何在Mac下显示Finder中的所有文件

    在Unix下工作,你可能需要处理一些“特殊“文件或文件夹,例如/usr,/bin, etcf,或一些"dot files"(如.bash_profile).但是Linux/Unix ...

随机推荐

  1. 『干货』分享你最喜欢的技巧和提示(Xcode,objective-c,swift,c...等等)

    亲爱的读者们,你们好 !年底将近,分享从过去一年你最喜欢的技巧和建议作为礼物送给新手们.提交你的最喜欢的迅速或objc琐事,实用的提示,意外的发现,实用的解决方法,没用的迷恋,或不论什么其它你认为今年 ...

  2. 小胖说事31------iOS 真机编译错误"“XXX”的 iPod" and run "XXX" again, or if "XXX" is still running

    在真机上測试时用一会就出现例如以下信息,且应用挂掉. Restore the connection to ""XXX"的 iPod" and run " ...

  3. 关于HuffmanCoding的简单分析

    1.what's problem we faced? /** *    Q: what's problem we faced? * *    A: Data compression is still ...

  4. Android Studio最新配置教程2016

    http://blog.csdn.net/wen_demo 一.Android studio 基本简单介绍 1.Android studio和Eclipse的差别: 1.Studio中有Project ...

  5. java学习笔记:Eclipse打开现有项目

    初学JAVA,觉得困难重重. 多年来,已经习惯了微软系列的VS,现在使用Eclipse,觉得差别很大. 比如打开一个现有项目.并没有什么所谓的项目文件,如*.sln,*.cproj什么的.那怎么打开? ...

  6. 通常每个套接字地址(协议/网络地址/端口)只允许使用一次。 数据库连接不释放测试 连接池 释放连接 关闭连接 有关 redis-py 连接池会导致服务器产生大量 CLOSE_WAIT 的再讨论以及一个解决方案

    import pymysqlfrom redis import Redisimport time h, pt, u, p, db = '192.168.2.210', 3306, 'root', 'n ...

  7. 网页分享URL

    <a href="tencent://Message/?Uin=QQ号码&Site=qq联系">点击联系</a> 1.新浪微博:<a href ...

  8. C# 针对文件夹的操作

    //创建文件夹Directory.CreateDirectory(Server.MapPath("a"));Directory.CreateDirectory(Server.Map ...

  9. linux tmux基本操作

    1. 安装工具 Centos : yum install tmux 2. 基本操作 新建会话:tmux new -s session-name 查看会话:tmux ls 进入会话:tmux a -t ...

  10. 为什么使用HttpServlet?http协议特点、servlet

    因为只有HttpServlet是基于http协议,实现Servlet接口,而http协议是短连接协议,能够实现客户端访问服务端后,数据交互后 连接自动断开.同时http协议基于tcp.ip协议,封装了 ...