緣起
...
共享代碼
前端是怎么共享代碼的呢缤沦?在 GitHub 還沒有興起的年代,前端是通過網(wǎng)址來共享代碼易稠。比如你想使用 jQuery 缸废,那么你點擊 jQuery 網(wǎng)站上提供的鏈接就可以下 jQuery ,放到自己的網(wǎng)站上使用 。GItHub 興起之后企量,社區(qū)中也有人使用 GitHub 的下載功能测萎。
麻煩
當一個項目依賴的代碼越來越多,程序員發(fā)現(xiàn)這是一件很麻煩的事情:
1.去 jQuery 官網(wǎng)下載 jQuery
2.去 BootStrap 官網(wǎng)下載 BootStrap
3.去 Underscore 官網(wǎng)下載 Underscore
......
有些程序員就受不鳥了梁钾,一個擁有三大美德的程序員 Isaac Z. Schlueter (以下簡稱 Isaaz)給出了一個解決方案:用一個工具把這些代碼集中到一起來管理吧绳泉!這個工具就是他用 JavaScript (運行在 Node.js 上)寫的 npm逊抡,全稱是 Node Package Manager姆泻。
npm的思路大概是這樣的:
1.買個服務器作為代碼倉庫(repository),在里面放所有需要被共享的代碼
2.發(fā)郵件通知 jQuery 冒嫡、Bootstrap 拇勃、Underscore 的作者使用 npm publish 把代碼提交到 repository 上,分別取名 jquery孝凌、bootstrap 和 underscore(注意大小寫)
3.社區(qū)里的其他人如果想使用這些代碼方咆,就把 jquery、bootstrap 和 underscore 寫到 package.json 里蟀架,然后運行 npm install 瓣赂,npm 就會幫他們下載代碼
4.下載完的代碼出現(xiàn)在 node_modules 目錄里,就可以隨意使用了片拍。
這些可以被使用的代碼被叫做「包」(package)煌集,這就是 npm名字的由來:Node Package(包) Manager(管理器)。
那么 npm 是怎么火的呢捌省?
npm 的發(fā)展是跟 node.js 的發(fā)展相輔相成的苫纤。node.js 是由一個在德國工作的美國程序員 Ryan Dahl 寫的。他寫了 node.js纲缓,但是 node.js 缺少一個包管理器卷拘,于是他和npm的作者一拍即合、抱團取暖祝高,最終 node.js 內置了 npm栗弟。
后來的事情大家都知道,node.js 火了工闺。隨著 node.js 的火爆横腿,大家開始用 npm 來共享 JS 代碼了,于是 jQuery 作者也將 jQuery 發(fā)布到 了 npm 上斤寂。所以現(xiàn)在耿焊,你可以使用 npm install jquery 來下載 jQuery 代碼了。現(xiàn)在用 npm 來分享代碼已經成了前端的標配遍搞。