CommonJS規范

概述

每個文件就是一個模塊,有自己的作用域。在一個文件里面定義的變量、函數、類,都是私有的,對其他文件不可見。每個模塊內部,module變量代表當前模塊。這個變量是一個對象,它的exports屬性(即module.exports)是對外的接口。加載某個模塊,其實是加載該模塊的module.exports屬性。

  • module.exports對外的接口.
  • require方法用于加載模塊。

Module對象

每個模塊內部,都有一個module對象,代表當前模塊。它有以下屬性。

  • module.id 模塊的識別符,通常是帶有絕對路徑的模塊文件名。
  • module.filename 模塊的文件名,帶有絕對路徑。
  • module.loaded 返回一個布爾值,表示模塊是否已經完成加載。
  • module.parent 返回一個對象,表示調用該模塊的模塊。
  • module.children 返回一個數組,表示該模塊要用到的其他模塊。
  • module.exports 表示模塊對外輸出的值。

require命令

require命令的基本功能是,讀入并執行一個JavaScript文件,然后返回該模塊的exports對象。如果沒有發現指定模塊,會報錯。

  • 加載規則:后綴名默認為.js。
    如果參數字符串以“/”開頭,則表示加載的是一個位于絕對路徑的模塊文件。
    如果參數字符串以“./”開頭,則表示加載的是一個位于相對路徑。
    如果參數字符串不以“./“或”/“開頭,則表示加載的是一個默認提供的核心模塊(位于Node的系統安裝目錄中),或者一個位于各級node_modules目錄的已安裝模塊(全局安裝或局部安裝)。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 概念 1、為什么要使用模塊化? 當代碼規模較大或進行團隊協作時,如果不實行模塊化,有可能導致命名沖突----解決命...
    周花花啊閱讀 827評論 0 3
  • 一、 為什么要使用模塊化? 解決命名沖突 解決依賴管理 提高代碼可讀性 代碼解耦,提高復用性 二、CMD、AMD、...
    Chy18閱讀 384評論 0 0
  • 模塊 Node 有簡單的模塊加載系統。在 Node 里,文件和模塊是一一對應的。下面例子里,foo.js加載同一個...
    保川閱讀 611評論 0 0
  • 為什么要使用模塊化? 網頁隨著技術的發展也變的越來越復雜,模塊化可以讓工作像流水線組裝一樣提高效率,開發過程中只要...
    沒夢想的咸魚丶閱讀 304評論 0 0
  • 問答 1.為什么要使用模塊化? 要使用模塊化,我們要知道什么是模塊化?首先一個模塊是為了實現特定功能的文件,模塊化...
    GarenWang閱讀 1,541評論 1 1