npm是什么
npm:npm是一個JavaScript的包管理程序 -- Node Package Manager
npm的由來:
當一個項目依賴的代碼越來越多钉稍,程序員發(fā)現(xiàn)這是一件很麻煩的事情:
- 我要去哪里下載我要的第三方依賴不铆?
- 我要用什么版本?
- 如何更新我已經(jīng)使用的第三方依賴?
- 等等。石挂。。险污。痹愚。富岳。
有些程序員就受不鳥了,一個擁有三大美德的程序員 Isaac Z. Schlueter (以下簡稱 Isaaz)給出了一個解決方案:用一個工具把這些代碼集中到一起來管理吧拯腮!這個工具就是他用 JavaScript (運行在 Node.js 上)寫的 npm窖式,全稱是 Node Package Manager。
npm的思路大概是這樣的:
- 買個服務器作為代碼倉庫(repository)动壤,在里面放所有需要被共享的代碼
- 發(fā)郵件通知 jQuery 萝喘、Bootstrap 、Underscore 的作者使用 npm publish 把代碼提交到 repository 上琼懊,分別取名 jquery阁簸、bootstrap 和 underscore(注意大小寫)
- 社區(qū)里的其他人如果想使用這些代碼,就把 jquery哼丈、bootstrap 和 underscore 寫到 package.json 里启妹,然后運行 npm install ,npm 就會幫他們下載代碼
- 下載完的代碼出現(xiàn)在 node_modules 目錄里醉旦,就可以隨意使用了饶米。
這些可以被使用的代碼被叫做「包」(package),這就是 npm名字的由來:Node Package(包) Manager(管理器)车胡。
npm 的發(fā)展是跟 node.js 的發(fā)展相輔相成的檬输。node.js 是由一個在德國工作的美國程序員 Ryan Dahl 寫的。他寫了 node.js吨拍,但是 node.js 缺少一個包管理器褪猛,于是他和npm的作者一拍即合、抱團取暖羹饰,最終 node.js 內(nèi)置了 npm伊滋。