## 什么是npm
**npm(node package manager)——node的包管理器**。它使`JavaScript`開發者分享和重用代碼更簡單,更新已分享的模塊也更容易。
>npm makes it easy for JavaScript developers to share and reuse code, and it makes it easy to update the code that you're sharing.
### npm是干什么的
在實際開發中,開發者遇到的問題很多都有共性,比如,很多開發者經常用到MD5加密,有經驗的開發者就會封裝一個MD5模塊,然后共享給其他人使用,這樣就可以避免重復造輪子,大大提高效率。但是,單個開發者的影響力有限,這個MD5模塊傳播的范圍將很有限。如果有一個有影響力的、眾所周知的、運營良好的社區可以讓開發者共享代碼,上面的問題不就解決了?npm正是在這種想法下誕生的,它就是這樣一個社區。
對于npm的形成和發展有興趣的朋友可以閱讀這一篇文章——[npm是干什么的?](https://zhuanlan.zhihu.com/p/24357770)
### npm的使用場景
1.在自己開發的工程中引入第三方模塊(可以在npm官網搜索)
>Tips:
[npm常用指令](313177)一小節的npm install將詳細如何安裝第三方模塊,(在[手把手教你寫Hello Node](313184)一小節將教你如何使用第三方模塊
2.封裝屬于自己內部的私有模塊,供自己使用或者供公司的團隊使用