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. Project Perfect让Swift在server端跑起来-引言(一)

    编者语:今天是大年初一.先和大家简单说一句猴年快乐! watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/ ...

  2. 【Unity 3D】学习笔记三十六:物理引擎——刚体

    物理引擎就是游戏中模拟真是的物理效果.如两个物体发生碰撞,物体自由落体等.在unity中使用的是NVIDIA的physX,它渲染的游戏画面很逼真. 刚体 刚体是一个很很中要的组件. 默认情况下,新创的 ...

  3. centos中chfn命令

    功能说明:改变finger指令显示的信息 假设你想改变哪个用户的finger信息,直接chfn username就可以.然后就能够输入一系列的信息 [root@centos Desktop]# chf ...

  4. sqlserver 触发器实例代码

    定义: 何为触发器?在SQL Server里面也就是对某一个表的一定的操作,触发某种条件,从而执行的一段程序.触发器是一个特殊的存储过程. 常见的触发器有三种:分别应用于Insert , Update ...

  5. go语言笔记——append是内置的函数!!!new是一个函数!!!调试可以使用闭包,本质上是print调试,尼玛!

    内置函数 Go 语言拥有一些不需要进行导入操作就可以使用的内置函数.它们有时可以针对不同的类型进行操作,例如:len.cap 和 append,或必须用于系统级的操作,例如:panic.因此,它们需要 ...

  6. 47. Ext.form.Field.prototype.msgTarget

    转自:https://blog.csdn.net/a1542aa/article/details/24295791 ExtJS.form中msgTarget Ext表单提示方式:msgTarget:有 ...

  7. java网络编程UDP

    图片来自网络 [发送端] import java.io.IOException; import java.net.DatagramPacket; import java.net.DatagramSoc ...

  8. PCB 内层负片散热PAD Symbols尺寸更改方法

    如下图这是我们熟悉的内层负片散热PAD Symbols,我们CAM制作时,为了满足PCB工厂生产制作能力,,会优化散热PAD尺寸,让热PAD的尺寸符合制作规范要求,通常我们只关注散热PAD的3个指标即 ...

  9. input如何去掉边框

    outline: none; border:solid 0px; 两个属性,ok.

  10. Centos7 时间不正确修复

    查看系统支持的时区列表 timedatectl list-timezones 使用 date -R 查看时区是否正确 date -R 修改时区 timedatectl set-timezone Asi ...