Node.js之CommonJS、模塊化理解、導入、導出、CommonJs的模塊化機制

CommonJS規範

  1. 一個js文件就是一個模塊
  2. 模塊內所有的變量均爲局部變量,不會污染全局
  3. 模塊中需要提供給其他模塊使用的內容需要導出
  4. 導出使用exports.xxx = xxxmodule.exports=xxxthis.xxx=xxx
  5. 其他模塊可以使用require函數導入

node實現了CommonJS規範

在編寫模塊時,都有require、exports、module三個預先定義好的變量可以使用。

require{}函數的兩個作用

  1. 執行導入的模塊中的代碼;

  2. 返回導入模塊中的接口;

導入

let a = require('./b');
console.log(a);

 導出

let a = 123;
exports.a = a;

modules.exports 默認就是等於 exports

let a = 123;
let b = 23;
let c = 789;
exports.a  = a;
module.exports.c = c;

總結

  1. Node中每個模塊都有一個module對象,module對象中有一個exports屬性爲一個接口對象,我們需要把模塊之間的公共的方法或者屬性掛載在這個接口對象中,方便其他模塊使用這些公共的方法或者屬性。
  2. Node 中每個模塊都會把module.exports指向的對象賦值給一個變量exports,也就是說exports = module.exports.
  3. Node中每個模塊的最後,都會return:module.exports。
  4. module.exports = xxx,表示當前模塊導出一個單一成員,結果就是xxx。
  5. 如果需要導出多個成員變量時,必須使用exports.add = xxx; exports.foo = xxx; 或者使用 module.exports.add = xxx; module.export.foo = xxx; 

CommonJs的模塊化機制

如果我們想要使用第三方包,那麼就需要npm去下載,Node.js中使用CommonJs模塊化機制,通過npm下載第三方包,

我們在項目中引入第三方包都是let xx=require('第三方包名');究竟require 方法加載第三方包的原理機制如下:

  1. require('第三方包名') 優先在加載該包的模塊都是同級目錄 node_modules 中查找第三方包,如果有則加載。

let tempate  = require('art-template') //加載第三方包

設置國內npm 鏡像地址

npm install -g cnpm  --registry=https://registry.npm.taobao.org

等待安裝成功 

 然後比如要引入jquery 那麼執行

npm  install jquery

然後重新查看目錄就會發下 多了一個node_modules 文件夾,這個文件夾下的就是你所引入的第三方包

然後使用require使用jQuery

let $ = require('jquery');

2.找到該第三方包中的package.json文件,並且找到裏面的main屬性對應的如果模塊,該入口模塊即爲加載的第三方模塊。

所以jquery.js 就在 dist目錄下

很明顯,可以看到  module.exports 的實現方法。

3.如果在要加載的第三方包中沒有找到package.json 文件或者是在package.json文件中沒有main 屬性

則默認加載第三方包中的index.js文件。

4.如果在加載第三方模塊的文件的同級目錄沒有找到node_modules 文件夾,或者以上所有的情況都沒有找到,

則會向上一級父目錄下查找 node_modules 文件夾,查找規則如上一致。

npm 是什麼

npm是Node JavaScript平臺的軟件包管理器。它將模塊放置在適當的位置,以便節點可以找到它們,並智能地管理依賴關係衝突

https://www.npmjs.cn/

npm 爲你和你的團隊打開了連接整個 JavaScript 天才世界的一扇大門。它是世界上最大的軟件註冊表,每星期大約有 30 億次的下載量,包含超過 600000 個 包(package) (即,代碼模塊)。來自各大洲的開源軟件開發者使用 npm 互相分享和借鑑。包的結構使您能夠輕鬆跟蹤依賴項和版本。

下面是關於 npm 的快速介紹:

npm 由三個獨立的部分組成:

  • 網站
  • 註冊表(registry)
  • 命令行工具 (CLI)

npm常用命令

npm  -v 查看npm 版本。

npm  init 初始化後會出現一個package.json配置文件,可以在後面加上 -y,快速跳過問答式界面。

npm  install 會根據項目中的package.json文件自動下載目錄中所需要的全部依賴。

npm install 包名 --save-dev(npm install 包名 -D) 安裝的包只用於開發環境,不會用於生產環境,會出現在package.json文件中的devDependencies屬性中。

npm install 包名  --save(npm install 包名 -S) 安裝的包需要發佈到生產環境,會出現在package.json文件的dependencies 屬性中。

npm list 查看當前目錄下已安裝的node 包

npm list -g 查看全局已經安裝過的node 包

npm  --help 查看npm 幫助命令

npm update 包名:更新指定包名

npm uninstall 包名: 卸載指定包

npm config list 查看配置信息

npm 指定命令 --help 查看指定命令的幫助

npm info 指定包名 查看遠程npm 上指定包的所有版本信息

npm config set registry https://registry.npm.taobao.org: 修改下載鏡像爲淘寶鏡像

npm root 查看當前包的安裝路徑

npm -root -g 查看全局的包的安裝路徑

npm ls 包名 查看本地安裝的指定包的版本信息,沒有顯示empty

npm ls 包名 -g 查看全局安裝的指定包的版本信息,沒有顯示empty

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章