五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

一文簡述你不知道的pstorage誕生記?。?!

2020-09-28 17:01 作者:博毅創(chuàng)為  | 我要投稿

序言

自古以來,有人的地方就有江湖,有猿的地方就有社區(qū)。GitHub就是猿類最大的社區(qū)。在這個社區(qū),大家可以自由地分享源代碼(線上代碼倉庫)、討論問題(Issue 列表)、收集學習資源。

但是江湖不是一日形成的,社區(qū)不是一開始就有的,在沒有社區(qū)之前,程序猿們是怎么共享代碼的呢?

在 GitHub 還沒有興起的年代,前端是通過網(wǎng)址來共享代碼。

比如你想使用 jQuery,那么你點擊 jQuery 網(wǎng)站上提供的鏈接就可以下載 jQuery,放到自己的網(wǎng)站上使用。


GitHub 興起之后,程序猿們歡欣跳躍,開始也有人使用 GitHub 的下載功能:


但是,很快,一部分勤勞的程序猿們發(fā)現(xiàn)了一個問題,當一個網(wǎng)站依賴的代碼越來越多,程序員發(fā)現(xiàn)這是一件很麻煩的事情。當項目中依賴的代碼越來越多,需要去不同的網(wǎng)站分別下載不同的依賴然后組合到一起,非常繁瑣。

比如:

需要使用 jQuery 要去JQuery的官網(wǎng)下載,需要使用BootStrap,要去BootStrap官網(wǎng)下載,需要 Underscore要去 Underscore 官網(wǎng)下載,……。

OMG,程序猿們原本不多的頭發(fā)又要被抓掉一大把??粗硞円粋€個抓耳撓腮,痛苦不堪的樣子,一個擁有三大美德的程序員 Isaac Z. Schlueter (以下簡稱 Isaaz)給出一個解決方案:用一個工具把這些代碼集中到一起來管理吧!

這個工具就是他用 JavaScript (運行在 Node.js 上)寫的 npm,全稱是 Node Package Manager 。

方案原理如下:

  1. 買個服務器作為代碼倉庫(registry),在里面放所有需要被共享的代碼。

  1. 發(fā)郵件通知 jQuery、Bootstrap、Underscore 的作者使用 npm publish 把代碼提交到 registry 上,分別取名 jquery、bootstrap 和 underscore(注意大小寫)。

  1. 社區(qū)里的其他人如果想使用這些代碼,就把 jquery、bootstrap 和 underscore 寫到 package.json 里,然后運行 npm install ,npm 就會幫他們下載代碼。

  1. 下載完的代碼出現(xiàn)在 node_modules 目錄里,可以隨意使用了。這些可以被使用的代碼被叫做「包」(package),這就是 NPM 名字的由來:Node Package(包) Manager(管理器)。

Isaaz 通知 jQuery 作者 John Resig,John Resig作者瞅了他一眼,你誰呀?

所以Isaaz要想一統(tǒng)江湖,必須先要收羅一大堆小弟,當一大堆小弟都山呼海嘯稱他大哥的時候,再出去混,就不用做自我介紹了。

所以,只有社區(qū)里的人都覺得“npm 是個寶”的時候,John Resig 才會考慮使用 npm。

Isaaz對這一點心知肚明,這就是江湖。

那么Isaaz怎么讓 npm 火起來呢?

有一天Isaaz在江湖游蕩,突然發(fā)現(xiàn)一個在德國打獵的美國程序猿Ryan Dahl打造一個打獵神器Node.js,但是由于這些箭都鋒利無比,Ryan Dahl無法將他們妥善的保管起來,并隨身攜帶(Node.js 缺少一個包管理器)。Isaaz毫不猶豫地將自己的乾坤袋NPM雙手奉上。Ryan Dahl 眼冒金星,欣喜若狂,兩人一拍即合,最終 Node.js 內置了 npm。

后來的事情大家都知道,Node.js 火了。

隨著 Node.js 的火爆,大家開始用 npm 來共享 JS 代碼了,于是 jQuery 作者也將 jQuery 發(fā)布到 npm 了。

所以現(xiàn)在,你可以使用 npm install jquery 來下載 jQuery 代碼。

現(xiàn)在用 npm 來分享代碼已經(jīng)成了前端的標配。比如現(xiàn)在大家要使用express包。只需要在npm的官網(wǎng),輸入express搜索下,就能夠找到相應模塊。


然后點擊進去,就可以看到安裝使用提示,如下:


后記:

Node.js 目前由 Ryan Dahl 當時所在的部落(joyent 公司)繼續(xù)開發(fā)。Ryan Dahl 現(xiàn)在已經(jīng)去研究 AI 和機器學習了,并且他把 Node.js 的維護權交給了 Isaaz。

而 Isaaz 維護了一段時間后,辭職了,成立了一個公司專門維護 npm 的 registry,公司名叫做 npm 股份有限公司。誰說開源不能賺錢的?

回顧前端的發(fā)展是你會發(fā)現(xiàn),都是社區(qū)里的某個人,發(fā)布了一份代碼,最終影響前端幾年的走向。比如 jQuery,比如 Node.js,比如 npm。(其實其他語言也是這樣的)

所以,社區(qū)的力量是巨大的。有時候還是得記住“為人民服務”。


阜城县| 武川县| 兰州市| 阿拉善盟| 营口市| 江西省| 九龙坡区| 武义县| 辽中县| 鲁山县| 开化县| 绥芬河市| 宁晋县| 沁阳市| 拉萨市| 建德市| 永善县| 探索| 苗栗县| 泊头市| 巢湖市| 华池县| 邮箱| 阿尔山市| 莒南县| 平原县| 邹平县| 佛山市| 开封市| 洪泽县| 东平县| 田阳县| 乌海市| 阿巴嘎旗| 宁安市| 喀喇| 新郑市| 景德镇市| 新干县| 巨鹿县| 海兴县|