接觸 npm 也有一個多月的時間了,一直只是將他作為當著 webstorm + node.js 環境中的一個插件來用(甚至說把她當著命令來用)。畢竟大部分的時間,他是輸入的命令行中的一部分(別笑,小新人真的會存在這個問題)。這幾天決定好好整理一下關於 npm ,收藏在這了。 1、安裝 現在 npm ...
接觸 npm 也有一個多月的時間了,一直只是將他作為當著 webstorm + node.js 環境中的一個插件來用(甚至說把她當著命令來用)。畢竟大部分的時間,他是輸入的命令行中的一部分(別笑,小新人真的會存在這個問題)。這幾天決定好好整理一下關於 npm ,收藏在這了。
-------------------------------------------------------------------------------------
1、安裝
現在 npm (全稱是 Node Package Manager) 都是集成在node.js中的,所以基本上 node.js 安裝成功後,npm 也就安裝成功了。
在(webstorm 或者 node.js)命令行界面輸入 npm -v 查看安裝的 npm 的版本,同時也可以驗證 npm 是否安裝成功。
2、介紹
一個偉大的擁有“懶惰、急躁和傲慢”等三大程式員美德的程式員 Isaac Z. Schlueter,實在受不了原本的代碼共用的方式,想要創建一個更加簡單易操作的包管理器。在下載別人的共用代碼的時候,就不需要滿世界的去找網站下載。然後他就利用 JS 寫出了 npm (不得不說大神就是這麼任性,github的創始人也是~)。
3、具體步驟
NPM 的思路大概是這樣的:
1. 買個伺服器作為代碼倉庫(registry),在裡面放所有需要被共用的代碼
2. 發郵件通知 jQuery、Bootstrap、Underscore 作者使用 npm publish 把代碼提交到 registry 上,分別取名 jquery、bootstrap 和 underscore(註意大小寫)
3. 社區里的其他人如果想使用這些代碼,就把 jquery、bootstrap 和 underscore 寫到 package.json 里,然後運行 npm install ,npm 就會幫他們下載代碼
4. 下載完的代碼出現在 node_modules 目錄里,可以隨意使用了。
這些可以被使用的代碼被叫做「包」(package),這就是 NPM 名字的由來:Node Package(包) Manager(管理器)。
4、發展
Isaaz 通知 jQuery 作者 John Resig,他會答應嗎?這事兒不一定啊,對不對。
只有社區里的人都覺得 「npm 是個寶」的時候,John Resig 才會考慮使用 npm。
那麼 npm 是怎麼火的呢?
npm 的發展是跟 Node.js 的發展相輔相成的。
Node.js 是由一個在德國工作的美國程式員 Ryan Dahl 寫的。他寫了 Node.js,但是 Node.js 缺少一個包管理器,於是他和 npm 的作者一拍即合、抱團取暖,最終 Node.js 內置了 npm。
後來的事情大家都知道,Node.js 火了。
隨著 Node.js 的火爆,大家開始用 npm 來共用 JS 代碼了,於是 jQuery 作者也將 jQuery 發佈到 npm 了。
所以現在,你可以使用 npm install jquery 來下載 jQuery 代碼。
現在用 npm 來分享代碼已經成了前端的標配。
5、後續
Node.js 目前由 Ryan Dahl 當時所在的公司 joyent 繼續開發。Ryan Dahl 現在已經去研究 AI 和機器學習了,並且他把 Node.js 的維護權交給了 Isaaz。(我是不是也應該去研究 AI 和機器學習啊教練)
而 Isaaz 維護了一段時間後,辭職了,成立了一個公司專門維護 npm 的 registry,公司名叫做 npm 股份有限公司……誰說開源不能賺錢的~
-------------------------------------------------------------------------------------
為啥寫著寫著有一種衝動去寫篇關於 node.js 的介紹文檔呢~這一定是我的錯覺。不過 node.js 這一塊我確實還是皮毛階段,大概知道他怎麼用,實際的具體功能等,好像還真的是沒有那麼清楚。下一篇就整理 node.js 吧。就是這樣。
npm 教程參考:http://www.runoob.com/nodejs/nodejs-npm.html