node.js相關的一些名詞解釋
一. Common.js模組規範
node.js實現了Common.js模組規範化
1. 什麼是 CommonJS 規範?
CommonJS 是為了實現 Javascript 的模組化,而制定的一套規範;
2. 為什麼 Javascript 需要模組化?
瀏覽器中的Javascript有沒有實現模組化?(在一個JS檔案中,能不能引用另外JS檔案中的方法)
有了模組,我們就可以更方便地使用別人的程式碼,想要什麼功能,就載入什麼模組。
3. 如何實現 Javascript 的模組化?
為了統一大家編寫模組時候的規則,方便各模組之間的依賴和呼叫,於是 CommonJS 規範就應運而生了。
4. 那麼,CommonJS 模組化規範,到底是個什麼東西??
定義了什麼是模組?
一個JS模組中,如何引入其它的JS模組?
一個JS模組中,如何向外暴露一些成員,供其它模組呼叫;
如果沒有類似於 CommonJS 的規範,行不行?
只有大家遵守同樣的規範,才能夠協作開發,方便別人,同時也方便自己;
二. 包
Packages
,包是在模組基礎上更深一步的抽象,目的是:方便分發推廣基於 CommonJS 規範實現的 應用程式 或 類庫;包可以看作是 模組、程式碼 和 其它資源 組合起來形成的 獨立作用域;
符合規範的包結構
;
package.json
必須在包的頂層目錄下;package.json
name
(包的名字),version
, (包的版本號),main
, (包入口檔案)javaScript程式碼應該在lib目錄下;
文件應該在doc目錄下;
單元測試應該在test目錄下;
Node.js對包要求並沒有那麼嚴格,只要頂層目錄下有
package.json
,並符合基本規範即可;
包描述檔案package.json的一些常用項
name:包的名稱,必須是唯一description:包的簡要說明
version:符合語義化版本識別規範的版本字串
keywords:關鍵字資料,通常用於搜尋
maintainers:維護者陣列,每個元素要包含name、email、web等
contributors:貢獻者陣列,格式與maintainers相同。包的作者應該是貢獻者資料的第一個元素
bugs:提交bug的地址,可以是網址或者電子郵件地址
licenses:許可證陣列,每個元素要包含type和url欄位
repositories:倉庫託管地址陣列,每個元素要包含type、url和path欄位
dependencies:包的依賴,一個關聯陣列,由包名稱和版本號組成。
devDependencies:開發依賴項,表示一個包在開發期間用到的依賴項
三. npm
npm的兩層含義https://www.npmjs.com/
;NPM 是Node的包管理工具(全名叫做 Node package manager),在安裝Node時候,就已經自動安裝了 NPM 這個管理工具;
什麼是全域性的包:通過
npm install 包名 -g
方式安裝的包,都安裝到了全域性;一般全域性的安裝目錄是C:\Users\自己的使用者資料夾\AppData\Roaming\npm
如何安裝一個全域性的包:
npm install i5ting_toc -g
, 注意:這裡的-g
表示全域性安裝包的意思i5ting_toc為包名;注意:一般,只有一些工具,才有全域性安裝的必要性;
如果要全域性解除安裝某個包,比如要解除安裝
i5ting_toc
了,直接執行npm uninstall i5ting_toc -g
就可以全域性解除安裝包了!
安裝和解除安裝本地包
什麼是本地的包:跟著專案安裝的包,叫做本地包;
如果拿到一個空專案,必須先初始化一個
package.json
的配置檔案,npm init
或者npm init -y
執行
npm i 包名 --save
去安裝指定的包,本地安裝的包,都安裝到了node_modules
的目錄下如果用的是npm 5.x的版本,可以不指定
--save
命令,如果用的是 npm 3.x 的版本,則需要手動指定--save
, 同時,--save
有縮寫形式,是:-S
package-lock.json
檔案中記錄了曾經裝過的包的下載地址,方便下次直接下載包;
其它常用命令
--save-dev
它的縮寫是-D
注意:
dependencies
節點,表示專案上線部署時候需要的依賴項;devDependencies
節點,表示專案在開發階段需要的依賴項,但是當專案要部署上線了,devDependencies
節點中的包,就不再需要了!注意:當使用
npm i
快速裝包的時候,npm會檢查package.json
檔案中,所有的依賴項,然後都為我們安裝到專案中--production
表示只安裝dependencies
節點下,記錄的包,不安裝devDependencies
節點下的包;當專案要上線了,才會使用--production
命令
解決 npm 下載慢問題
預設,NPM在下載包的時候,連線的是國外的伺服器,所以,有時候如果網速不是特別好,可能下載不下來包;此時,可以安裝一個工具,叫做
nrm
,裡面記錄了好多下載NPM包的伺服器地址,可以讓我們方便的切換下載包時候請求的伺服器;執行
npm i nrm -g
(注意:只要是工具,一般都是全域性 -g 安裝)當裝完 nrm 之後,可以執行
nrm ls
檢視所有可用的伺服器列表可使用
nrm use 伺服器名稱
來切換下載包時候的伺服器地址