是什么時候開始學習gulp了

轉自:http://www.ydcss.com/archives/18

簡介:

gulp是前端開發過程中對代碼進行構建的工具,是自動化項目的構建利器;她不僅能對網站資源進行優化,而且在開發過程中很多重復的任務能夠使用正確的工具自動完成;使用她,我們不僅可以很愉快的編寫代碼,而且大大提高我們的工作效率。

gulp是基于Nodejs的自動任務運行器, 她能自動化地完成 javascript/coffee/sass/less/html/image/css 等文件的的測試、檢查、合并、壓縮、格式化、瀏覽器自動刷新、部署文件生成,并監聽文件在改動后重復指定的這些步驟。在實現上,她借鑒了Unix操作系統的管道(pipe)思想,前一級的輸出,直接變成后一級的輸入,使得在操作上非常簡單。通過本文,我們將學習如何使用Gulp來改變開發流程,從而使開發更加快速高效。

gulp 和 grunt 非常類似,但相比于 grunt 的頻繁 IO 操作,gulp 的流操作,能更快地更便捷地完成構建工作。

本示例以gulp-less為例(將less編譯成css的gulp插件)展示gulp的常規用法,只要我們學會使用一個gulp插件后,其他插件就差看看其幫助文檔了。讓我們一起來學習gulp吧! ^_^

gulp常用地址:

gulp官方網址:http://gulpjs.com

gulp插件地址:http://gulpjs.com/plugins

gulp 官方API:https://github.com/gulpjs/gulp/blob/master/docs/API.md

gulp 中文API:http://www.ydcss.com/archives/424

目錄:

1、安裝nodejs
2、使用命令行
3、npm介紹
4、選裝cnpm
5、全局安裝gulp
6、新建package.json文件
7、本地安裝gulp插件
8、新建gulpfile.js文件
9、運行gulp
10、使用webstorm運行gulp任務
11、總結

在學習前,先談談大致使用gulp的步驟,給讀者以初步的認識。首先當然是安裝nodejs,通過nodejs的npm全局安裝和項目安裝gulp,其次在項目里安裝所需要的gulp插件,然后新建gulp的配置文件gulpfile.js并寫好配置信息(定義gulp任務),最后通過命令提示符運行gulp任務即可。

安裝nodejs -> 全局安裝gulp -> 項目安裝gulp以及gulp插件 -> 配置gulpfile.js -> 運行任務

1、安裝nodejs

1.1、說明:gulp是基于nodejs,理所當然需要安裝nodejs;

1.2、安裝:打開nodejs官網,點擊碩大的綠色Download按鈕,它會根據系統信息選擇對應版本(.msi文件)。然后像安裝QQ一樣安裝它就可以了(安裝路徑隨意)。

2、使用命令行(如果你熟悉命令行,可以直接跳到第3步)

2.1、說明:什么是命令行?命令行在OSX是終端(Terminal),在windows是命令提示符(Command Prompt);

2.2、注:之后操作都是在windows系統下;

2.3、簡單介紹gulp在使用過程中常用命令,打開命令提示符執行下列命令(打開方式:window?+ r 輸入cmd回車):

node -v查看安裝的nodejs版本,出現版本號,說明剛剛已正確安裝nodejs。PS:未能出現版本號,請嘗試注銷電腦重試;

npm -v查看npm的版本號,npm是在安裝nodejs時一同安裝的nodejs包管理器,那它有什么用呢?稍后解釋;

cd定位到目錄,用法:cd + 路徑 ;

dir列出文件列表;

cls清空命令提示符窗口內容。

3、npm介紹

3.1、說明:npm(node package manager)nodejs的包管理器,用于node插件管理(包括安裝、卸載、管理依賴等);

3.2、使用npm安裝插件:命令提示符執行npm install <name> [-g] [--save-dev]

3.2.1、<name>:node插件名稱。例:npm install gulp-less --save-dev

3.2.2、-g:全局安裝。將會安裝在C:\Users\Administrator\AppData\Roaming\npm,并且寫入系統環境變量; ?非全局安裝:將會安裝在當前定位目錄; ?全局安裝可以通過命令行在任何地方調用它,本地安裝將安裝在定位目錄的node_modules文件夾下,通過require()調用;

3.2.3、--save:將保存配置信息至package.json(package.json是nodejs項目配置文件);

3.2.4、-dev:保存至package.json的devDependencies節點,不指定-dev將保存至dependencies節點;一般保存在dependencies的像這些express/ejs/body-parser等等。

3.2.5、為什么要保存至package.json?因為node插件包相對來說非常龐大,所以不加入版本管理,將配置信息寫入package.json并將其加入版本管理,其他開發者對應下載即可(命令提示符執行npm install,則會根據package.json下載所有需要的包,npm install --production只下載dependencies節點的包)。

3.3、使用npm卸載插件:npm uninstall <name> [-g] [--save-dev]??PS:不要直接刪除本地插件包

3.3.1、刪除全部插件:npm uninstall gulp-less gulp-uglify gulp-concat ……???太麻煩

3.3.2、借助rimraf:npm install rimraf -g?用法:rimraf node_modules

3.4、使用npm更新插件:npm update <name> [-g]?[--save-dev]

3.4.1、更新全部插件:npm update?[--save-dev]

3.5、查看npm幫助:npm help

3.6、當前目錄已安裝插件:npm list

PS:npm安裝插件過程:從http://registry.npmjs.org下載對應的插件包(該網站服務器位于國外,所以經常下載緩慢或出現異常),解決辦法往下看↓↓↓↓↓↓。

4、選裝cnpm

4.1、說明:因為npm安裝插件是從國外服務器下載,受網絡影響大,可能出現異常,如果npm的服務器在中國就好了,所以我們樂于分享的淘寶團隊干了這事。32個!來自官網:“這是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務同步。”

4.2、官方網址:http://npm.taobao.org;

4.3、安裝:命令提示符執行npm install cnpm -g --registry=https://registry.npm.taobao.org; ?注意:安裝完后最好查看其版本號cnpm -v或關閉命令提示符重新打開,安裝完直接使用有可能會出現錯誤;

注:cnpm跟npm用法完全一致,只是在執行命令時將npm改為cnpm(以下操作將以cnpm代替npm)。

5、全局安裝gulp

5.1、說明:全局安裝gulp目的是為了通過她執行gulp任務;

5.2、安裝:命令提示符執行cnpm install gulp -g

5.3、查看是否正確安裝:命令提示符執行gulp -v,出現版本號即為正確安裝。

6、新建package.json文件

6.1、說明:package.json是基于nodejs項目必不可少的配置文件,它是存放在項目根目錄的普通json文件;

6.2、它是這樣一個json文件(注意:json文件內是不能寫注釋的,復制下列內容請刪除注釋)

6.3、當然我們可以手動新建這個配置文件,但是作為一名有志青年,我們應該使用更為效率的方法:命令提示符執行cnpm init

6.4、查看package.json幫助文檔,命令提示符執行cnpm help package.json

特別注意:package.json是一個普通json文件,所以不能添加任何注釋。參看?http://www.zhihu.com/question/23004511

7、本地安裝gulp插件

7.1、安裝:定位目錄命令后提示符執行cnpm install --save-dev

7.2、本示例以gulp-less為例(編譯less文件),命令提示符執行cnpm install gulp-less --save-dev

7.3、將會安裝在node_modules的gulp-less目錄下,該目錄下有一個gulp-less的使用幫助文檔README.md;

7.4、為了能正常使用,我們還得本地安裝gulp:cnpm install gulp --save-dev

PS:細心的你可能會發現,我們全局安裝了gulp,項目也安裝了gulp,全局安裝gulp是為了執行gulp任務,本地安裝gulp則是為了調用gulp插件的功能。

8、新建gulpfile.js文件(重要)

8.1、說明:gulpfile.js是gulp項目的配置文件,是位于項目根目錄的普通js文件(其實將gulpfile.js放入其他文件夾下亦可)。

8.2、它大概是這樣一個js文件(更多插件配置請查看這里):

8.3、該示例文件請下載查看

9、運行gulp

9.1、說明:命令提示符執行gulp 任務名稱

9.2、編譯less:命令提示符執行gulp testLess

9.3、當執行gulp defaultgulp將會調用default任務里的所有任務[‘testLess’,’elseTask’]。

10、使用webstorm運行gulp任務

10.1、說明:使用webstorm可視化運行gulp任務;

10.2、使用方法:將項目導入webstorm,右鍵gulpfile.js 選擇”Show Gulp Tasks”打開Gulp窗口,若出現”No task found”,選擇右鍵”Reload tasks”,雙擊運行即可。

11、總結

11.1、安裝nodejs;

11.2、新建package.json文件;

11.3、全局和本地安裝gulp;

11.4、安裝gulp插件;

11.5、新建gulpfile.js文件;

11.6、通過命令提示符運行gulp任務。

12、結束語

12.1、本文有任何錯誤,或有任何疑問,歡迎留言說明。

轉載于:https://www.cnblogs.com/zhangwei595806165/p/5792980.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/256563.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/256563.shtml
英文地址,請注明出處:http://en.pswp.cn/news/256563.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

011——數組(十一)array_merge array_merge_recursive array_change_key_case

<?php /***/ //array_merge() 將多個數組合并&#xff0c;生成新數組。當鍵名相同時&#xff0c;后者覆蓋前者 /*$array1array(weburl>"bbs.blog.com",webname>"博客"); $array2array(db_hot>"localhost",db_user>"root&qu…

matlab GUI——按下按鈕在指定的坐標下繪制函數圖像

目錄 1.組件布局 2.回調函數設置 3.編寫回調函數 1.組件布局 2.回調函數設置 右鍵單擊plot按鈕——查看回調——call backs

【轉】【UML】使用Visual Studio 2010 Team System中的架構師工具(設計與建模)

Lab 1: 應用程序建模 實驗目標 這個實驗的目的是展示如何在Visual Studio 2010旗艦版中進行應用程序建模。團隊中的架構師會通過建模確定應用程序是否滿足客戶的需求。 你可以創建不同級別的詳細模型&#xff0c;并將它們彼此結合、測試然后發布到你的開發計劃里。 在這個實驗中…

C語言:指針的幾種形式二

一、const指針 1、const int* p和int const* p:兩者意義是相同的。指向的內容是只讀數據&#xff0c;不可以q改變&#xff1b;但是指向的地址可以改變。2、int* const p&#xff1a;必須先對指針初始化&#xff0c;而且指向的地址是只讀的&#xff0c;不可以再被改變&#xff1…

深度學習基礎(一)起源

目錄 一、DP的前世 1.perceptron 2.NN 3.DP 二、DP的基礎知識 1.convolution 2.padding 3.pooling 4.Flatten 5.fully connected 6.dropout 一、DP的前世 深度學習發展至今經歷頗為曲折&#xff0c;上世紀起源&#xff0c;火熱起來也是20世紀初的時候&#xff0c;具體時…

ANSYS經典界面中梁單元實例全解析

轉載鏈接&#xff1a;http://www.jishulink.com/content/post/361389 文中紅色部分為自己添加&#xff01;&#xff01;&#xff01; 轉載的文章中提到的梁單元截面是常用的工字形&#xff0c;那么要是不規則的截面形狀的話需要自己進行截面形狀繪制&#xff0c;具體可以參考…

ant的安裝和使用

1.ant的安裝 1.1 添加環境變量&#xff1a;ANT_HOMED:\software\ant\apache-ant-1.10.1 在path中添加&#xff1a;%ANT_HOME%\bin 1.2 測試是否安裝成功 在cmd中輸入ant&#xff0c;如果出現如下提示表示安裝成功 2.定義簡單的build.xml 2.1 創建HelloWord.java package test; …

深度學習之tensorflow (一) XORerr1 -修改

博客背景是學習《深度學習之TensorFlow》這本書籍中的作業&#xff0c;修改第七章的作業&#xff0c;把XOR-異或的錯誤代碼修改為正確的。 主要修改有三個地方&#xff1a; 隱藏層一的運算從sigmoid修改為add運算&#xff1b;輸出層的運算修改為sigmoid&#xff08;原來是什么…

可調用對象

# -*- coding: utf-8 -*- #python 27 #xiaodeng #可調用對象 #http://www.cnpythoner.com/post/306.html#定義&#xff1a; #許多python對象都是可調用的&#xff0c;即&#xff1a;任何通過函數操作符()來調用的對象。 #callable()是一個布爾函數&#xff0c;確定一個對象是否…

Ansys ——自定義不規則形狀梁截面

目錄 導讀: 1、問題描述 2.CAD繪制截面,導出.sat文件格式 (1)在三維建模工作空間下繪制截面

Language-Directed Hardware Design for Network Performance Monitoring——Marple

網絡監控困難 1、僅僅通過去增加特定的監控功能到交換機是不能滿足運營商不斷變化的需求的。&#xff08;交換機需要支持網絡性能問題的表達語言&#xff09;2、他們缺乏對網絡深處的性能問題進行本地化的可見性&#xff0c;間接推斷網絡問題的原因3、當前的交換機監控并沒有提…

深度學習基礎(四)優化函數(梯度下降函數)

梯度下降函數也就是優化函數&#xff0c;在神經網絡訓練過程最重要的函數。重要程度類似于調校對于汽車的重要性&#xff0c;搭建模型和參數設置等操作“造好了一輛汽車”&#xff0c;優化函數“調校”。因為汽車最終的操控性和加速性能等指標很大程度取決于調校&#xff0c;調…

ANSYS 簡支梁的約束

在ansys中&#xff0c;梁的定義都是通過梁截面和軸線進行定義的&#xff0c;不同的梁的區別在ansys中的體現僅在于約束的處理上不同 1.簡支梁的約束 假設簡支梁的梁軸線是x軸&#xff0c;可以繞z軸彎曲&#xff0c;則簡支梁的約束&#xff1a; 起始點&#xff1a;X、Y、Z、RO…

js 實現 復制 功能 (zeroclipboard)

#復制功能因訪問權限和安全問題&#xff0c; 被瀏覽器禁了# 我要實現的功能&#xff1a;點擊復制按鈕&#xff0c;復制瀏覽器的當前頁面地址&#xff0c;加上用戶選擇的參數&#xff08;用戶查找過濾&#xff09;&#xff0c;直接將該鏈接發給別人&#xff0c;點擊打開就是對應…

解決 kindle 書籍字體顏色偏淡問題的方法

現象 通過Markdown轉換而來的mobi格式書籍都有一個大問題&#xff1a;字體偏淡&#xff0c;放在kindle上看對比度很差。 原因分析&#xff1a; 導致這種問題的原因&#xff0c;可能是因為在制作電子書的過程中&#xff0c;這些內容是被標注了彩色或灰色。這可能更適合全彩屏幕的…

車智匯模式系統技術開發數據

用戶思維&#xff1a;對經營者和消費者的理解&#xff0c;以用戶為中心&#xff0c;學會換位思考&#xff0c;發掘用戶的真正想法和需求。以前是生產什么就賣什么(自己制作賣點)&#xff0c;現在是了解用戶需要什么才做什么(實現賣點)。車智匯是一款以"云平臺智能終端&quo…

深度學習基礎(二)激活函數

激活函數&#xff08;也被稱為激勵函數&#xff09;的意義就是加入非線性因素&#xff0c;使得神經網絡具有非線性表達的能力。其必要條件是激活函數的輸入和輸出都是可微的&#xff0c;因為神經網絡要求處處可微。(可微是指函數的各個方向可導&#xff0c;可微大于等于可導) …

ANSYS——固定斜度的變截面變截面的定義、自由耦合和變截面的定義

目錄 1.變截面梁 2.自由度耦合 3.變截面的ANSYS GUI操作 4.疑問 以下兩個定義轉自:http://wenku.baidu.com/view/04e43ebbfd0a79563c1e722d.html 上述文章中還包含了一個實例,可以參考

Please ensure that adb is correctly located at……問題解決方案

啟動android模擬器時.有時會報The connection to adb is down, and a severe error has occured.的錯誤.在網友說在任務管理器上把所有adb.exe關閉掉.重啟eclipse.但試過不管用.所以在外國網站上找到一種可行的方法:1.先把eclipse關閉.2.在管理器轉到你的android SDK 的platfor…