做爲一個前端,每一個人應該對npm install這個命令應該很是熟悉了,尤爲是對這個命令執行過程當中命令窗口瘋狂輸出確定印象深入。我發現有的同窗對安裝包輕車熟路,但對包從哪裏來的以及如何發佈一個npm並非很瞭解,基於此,在團隊內部作了一次分享,將分享過程整理以下,但願對每個想發佈本身的包但又不知從何開始的同窗有所幫助。前端
因爲發佈包涉及到發佈、安裝、更新、刪除/廢棄等階段,寫在一篇文章中篇幅過長,決定拆開作成一個系列。今天第一篇首先介紹一下npm相關的一些知識。node
package
manager)包括:git
管理方式:程序員
npm中涉及到的主體主要有兩個:package和module,定義以下:github
含有package.json描述文件
並發佈到npm倉庫
的文件或者文件夾在node_modules中
,能夠被Node.js的require()方法加載
的任何文件或文件夾能夠這樣理解:一個JavaScript軟件,從本地發佈到npm倉庫時是package,從npm倉庫下載到本地時就變成了module
npm
另外,基於以上,能夠看出package和module的關係:json
除了以上概念外,再分別看下兩個主體中的細節部分:segmentfault
主要有兩個重要的屬性:babel
一旦註冊我的或者團體帳戶,就得到了與我的或者團體名相匹配的scope,能夠用這個scope做爲包的命名空間,例如@yuyy、@58。工具
分類:
scoped
做用:爲你本身發佈的包提供命名空間,防止與他人的包名衝突
屬性值有:
此屬性和github建立倉庫時設定訪問性的策略一致:公有,全部人可見,免費;私有,僅本身可見,收費。
以上兩個屬性之間的關係以下:
須要說明的幾點:
Scoped的package默認Private,但須要付費
,能夠經過命令行改變其屬性下載到本地的module主要是用於在node環境被引用,爲了能被Node.js的require()方法加載,module必須是下列狀況之一:
以上都是一些npm相關的知識,在下一篇《npm發佈包教程(二):發佈包》中,咱們開始演示發佈npm包的實際操做過程。
相關文章:
1.《npm發佈包教程(一):從npm提及》
2.《npm發佈包教程(二):發佈包》
3.《npm發佈包教程(三):安裝發佈包》
4.《npm發佈包教程(四):迭代》
5.《npm發佈包教程(五):廢棄/刪除》