關(guān)于nodejs演训、npm、bower贝咙、grunt的理解

一開始要裝nodejs样悟、然后用npm、bower的時候根本就有點搞不懂⊥バ桑現(xiàn)在終于弄明白一些了窟她。

前言

為什么要安裝nodejs。npm包有什么作用蔼水?

我的理解是安裝nodejs一開始主要是為了npm包順便安裝好震糖。然后npm包可以裝很多的東西。一開始我是懵的趴腋。我想的是npm弄完了它裝在全局的東西我該怎么去引用它呢吊说?后來經(jīng)過一系列的查找和問前輩,現(xiàn)在終于明白了一點优炬,所以來和大家分享颁井。

grunt

是一套前端自動化工具,一個基于nodeJs的命令行工具蠢护,一般用于:
① 壓縮文件
② 合并文件
③ 簡單語法檢查
對于其他用法雅宾,我還不太清楚,我們這里簡單介紹下grunt的壓縮葵硕、合并文件
初學(xué)眉抬,有誤請包涵

準(zhǔn)備階段

1、nodejs環(huán)境

因為要安裝grunt贬芥、bower吐辙、npm都是先需要nodejs的環(huán)境的。這個簡單網(wǎng)上百度nodejs下載蘸劈。下載完了直接安裝昏苏。它會自帶一個npm的包。然后通過這個我們就可以安裝bower威沫、還有一些庫什么的贤惯。

安裝grunt

npm install -g grunt-cli

直接cmd中敲就可以。因為是安裝在全局的都可以調(diào)用棒掠。這條命令將會把grunt命令植入系統(tǒng)路徑孵构,這樣就能在任意目錄運行他,
原因是每次運行g(shù)runt時烟很,它都會使用node的require查找本地是否安裝grunt颈墅,如果找到CLI便加載這個本地grunt庫然后應(yīng)用我們項目中的GruntFile配置蜡镶,并執(zhí)行任務(wù)PS:這段先不要管,安裝完了往下看恤筛。

如何打包

打包需要前提需要一個packsge.json文件和Gruntfile.js文件官还。

package.json

這個文件用來存儲npm模塊的依賴項(比如我們的打包若是依賴requireJS的插件,這里就需要配置)然后毒坛,我們會在里面配置一些不一樣的信息望伦,比如我們上面的file,這些數(shù)據(jù)都會放到package中

Gruntfile.js

這個文件尤其關(guān)鍵煎殷,他一般干兩件事情:
① 讀取package信息
② 插件加載屯伞、注冊任務(wù),運行任務(wù)(grunt對外的接口全部寫在這里面)

Gruntfile一般由四個部分組成① 包裝函數(shù)這個包裝函數(shù)沒什么東西豪直,意思就是我們所有的代碼必須放到這個函數(shù)里面
module.exports = function (grunt) {//你的代碼}
這個不用知道為什么劣摇,直接將代碼放入即可
② 項目/任務(wù)配置我們在Gruntfile一般第一個用到的就是initConfig方法配置依賴信息
pkg: grunt.file.readJSON('package.json')
這里的 grunt.file.readJSON就會將我們的配置文件讀出,并且轉(zhuǎn)換為json對象然后我們在后面的地方就可以采用pkg.XXX的方式訪問其中的數(shù)據(jù)了值得注意的是這里使用的是underscore模板引擎顶伞,所以你在這里可以寫很多東西uglify是一個插件的饵撑,我們在package依賴項進行了配置,這個時候我們?yōu)橄到y(tǒng)配置了一個任務(wù)uglify(壓縮)唆貌,他會干這幾個事情:① 在src中找到zepto進行壓縮(具體名字在package中找到)② 找到dest目錄,沒有就新建垢乙,然后將壓縮文件搞進去③ 在上面加幾個描述語言這個任務(wù)配置其實就是一個方法接口調(diào)用锨咙,按照規(guī)范來就好,暫時不予關(guān)注追逮,內(nèi)幕后期來這里只是定義了相關(guān)參數(shù)酪刀,但是并未加載實際函數(shù),所以后面馬上就有一句:grunt.loadNpmTasks('grunt-contrib-uglify');
用于加載相關(guān)插件最后注冊一個自定義任務(wù)(其實也是默認(rèn)任務(wù))钮孵,所以我們下面的命令行是等效的:
grunt == grunt uglify

合并文件
合并文件依賴于grunt-contrib-concat插件骂倘,所以我們的package依賴項要新增一項然后寫好配置文件即可先壓縮了再合并。關(guān)于package.json和Gruntfile.js怎么寫可以百度一下巴席。

疑惑

一開始我就很奇怪為什么公司做的項目是有bower的包和npm生成的node_module的東西历涝。后來我明白了一點。公司的項目主要用npm來進行代碼的打包壓縮漾唉。而用bower來裝一些插件庫荧库、比如angularjs、jquery赵刑、bootstrap等分衫。其實npm一個東西就可以干完的事情。至今還有疑惑為什么要分開般此。有人能解答疑惑可以在下方評論蚪战。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末牵现,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子邀桑,更是在濱河造成了極大的恐慌瞎疼,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件概漱,死亡現(xiàn)場離奇詭異丑慎,居然都是意外死亡,警方通過查閱死者的電腦和手機瓤摧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評論 3 392
  • 文/潘曉璐 我一進店門竿裂,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人照弥,你說我怎么就攤上這事腻异。” “怎么了这揣?”我有些...
    開封第一講書人閱讀 162,995評論 0 353
  • 文/不壞的土叔 我叫張陵悔常,是天一觀的道長。 經(jīng)常有香客問我给赞,道長机打,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,223評論 1 292
  • 正文 為了忘掉前任片迅,我火速辦了婚禮残邀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘柑蛇。我一直安慰自己芥挣,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,245評論 6 388
  • 文/花漫 我一把揭開白布耻台。 她就那樣靜靜地躺著空免,像睡著了一般。 火紅的嫁衣襯著肌膚如雪盆耽。 梳的紋絲不亂的頭發(fā)上蹋砚,一...
    開封第一講書人閱讀 51,208評論 1 299
  • 那天,我揣著相機與錄音征字,去河邊找鬼都弹。 笑死,一個胖子當(dāng)著我的面吹牛匙姜,可吹牛的內(nèi)容都是我干的畅厢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,091評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼氮昧,長吁一口氣:“原來是場噩夢啊……” “哼框杜!你這毒婦竟也來了浦楣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,929評論 0 274
  • 序言:老撾萬榮一對情侶失蹤咪辱,失蹤者是張志新(化名)和其女友劉穎振劳,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體油狂,經(jīng)...
    沈念sama閱讀 45,346評論 1 311
  • 正文 獨居荒郊野嶺守林人離奇死亡历恐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,570評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了专筷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片弱贼。...
    茶點故事閱讀 39,739評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖磷蛹,靈堂內(nèi)的尸體忽然破棺而出吮旅,到底是詐尸還是另有隱情,我是刑警寧澤味咳,帶...
    沈念sama閱讀 35,437評論 5 344
  • 正文 年R本政府宣布庇勃,位于F島的核電站,受9級特大地震影響槽驶,放射性物質(zhì)發(fā)生泄漏责嚷。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,037評論 3 326
  • 文/蒙蒙 一掂铐、第九天 我趴在偏房一處隱蔽的房頂上張望再层。 院中可真熱鬧,春花似錦堡纬、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至棍鳖,卻和暖如春炮叶,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背渡处。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評論 1 269
  • 我被黑心中介騙來泰國打工镜悉, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人医瘫。 一個月前我還...
    沈念sama閱讀 47,760評論 2 369
  • 正文 我出身青樓侣肄,卻偏偏與公主長得像,于是被迫代替她去往敵國和親醇份。 傳聞我的和親對象是個殘疾皇子稼锅,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,647評論 2 354

推薦閱讀更多精彩內(nèi)容