1. 程式人生 > >node.js相關的一些名詞解釋

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 的規範,行不行?
    只有大家遵守同樣的規範,才能夠協作開發,方便別人,同時也方便自己;

二. 包

  1. 英文名叫做 Packages,包是在模組基礎上更深一步的抽象,目的是:方便分發推廣基於 CommonJS 規範實現的 應用程式 或 類庫;

  2. 包可以看作是 模組、程式碼 和 其它資源 組合起來形成的 獨立作用域;

 符合規範的包結構

  1. 包都要以一個單獨的目錄而存在

  2. package.json 必須在包的頂層目錄下

  3. package.json

    檔案必須符合 JSON 格式,並且必須包含如下三個屬性:name(包的名字),  version, (包的版本號),main, (包入口檔案)

  4. javaScript程式碼應該在lib目錄下;

  5. 文件應該在doc目錄下;

  6. 單元測試應該在test目錄下;

  7. 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的兩層含義
  1. NPM 是一個 第三方模組的託管網站,指的就是https://www.npmjs.com/

  2. NPM 是Node的包管理工具(全名叫做 Node package manager),在安裝Node時候,就已經自動安裝了 NPM 這個管理工具;

安裝和解除安裝全域性包

  1. 什麼是全域性的包:通過 npm install 包名 -g 方式安裝的包,都安裝到了全域性;一般全域性的安裝目錄是C:\Users\自己的使用者資料夾\AppData\Roaming\npm

  2. 如何安裝一個全域性的包:npm install i5ting_toc -g, 注意:這裡的-g表示全域性安裝包的意思i5ting_toc為包名

  3. 注意:一般,只有一些工具,才有全域性安裝的必要性;

  4. 如果要全域性解除安裝某個包,比如要解除安裝 i5ting_toc了,直接執行npm uninstall i5ting_toc -g就可以全域性解除安裝包了!

安裝和解除安裝本地包

  1. 什麼是本地的包:跟著專案安裝的包,叫做本地包;

  2. 如果拿到一個空專案,必須先初始化一個package.json的配置檔案,npm init或者npm init -y

  3. 執行npm i 包名 --save去安裝指定的包,本地安裝的包,都安裝到了node_modules的目錄下

  4. 如果用的是npm 5.x的版本,可以不指定--save命令,如果用的是 npm 3.x 的版本,則需要手動指定 --save, 同時,--save有縮寫形式,是:-S

  5. package-lock.json檔案中記錄了曾經裝過的包的下載地址,方便下次直接下載包;

其它常用命令

  1. --save-dev它的縮寫是-D

  2. 注意:dependencies節點,表示專案上線部署時候需要的依賴項;devDependencies節點,表示專案在開發階段需要的依賴項,但是當專案要部署上線了,devDependencies節點中的包,就不再需要了!

  3. 注意:當使用npm i快速裝包的時候,npm會檢查package.json檔案中,所有的依賴項,然後都為我們安裝到專案中

  4. --production 表示只安裝 dependencies 節點下,記錄的包,不安裝devDependencies節點下的包;當專案要上線了,才會使用--production命令

解決 npm 下載慢問題

  1. 預設,NPM在下載包的時候,連線的是國外的伺服器,所以,有時候如果網速不是特別好,可能下載不下來包;此時,可以安裝一個工具,叫做nrm,裡面記錄了好多下載NPM包的伺服器地址,可以讓我們方便的切換下載包時候請求的伺服器;

  2. 執行npm i nrm -g(注意:只要是工具,一般都是全域性 -g 安裝)

  3. 當裝完 nrm 之後,可以執行nrm ls 檢視所有可用的伺服器列表

  4. 可使用nrm use 伺服器名稱來切換下載包時候的伺服器地址